<![CDATA[Latest posts for the topic "[Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu""]]> /hvaonline/posts/list/21.html JForum - http://www.jforum.net [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu"
a. Đối với "hệ cơ sở dữ liệu", tình trạng trên là tình trạng gì? b. Phân tích các khả năng dẫn đến tình trạng trên và rút ra giải pháp ngăn chặn tình trạng như thế xảy ra. c. Đối với bảo mật, tình trạng trên vi phạm nguyên tắc bảo mật nào? PS: đây là câu trắc nghiệm dành riêng cho H3x4 như đã hứa (trong chủ đề /hvaonline/posts/list/28590.html). Đề nghị mọi người không trả lời, không gợp ý và không bàn luận trước khi H3x4 hồi đáp. Cám ơn.]]>
/hvaonline/posts/list/28732.html#177105 /hvaonline/posts/list/28732.html#177105 GMT
Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu" /hvaonline/posts/list/28732.html#177154 /hvaonline/posts/list/28732.html#177154 GMT Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu"

nbthanh wrote:
Không trả lời, không gợi ý nhưng...góp ý được không anh? Title là "trắc nghiệm", nghe thì dễ hiểu là "multiple choice" nhưng câu hỏi thì rõ ràng là không phải format này. 
Góp ý thì được chớ sao không? :). Trắc nghiệm vẫn là "test". Chừng nào có kèm "multiple choices" thì mới là trắc nghiệm theo kiểu multiple choices. Còn không thì nó vẫn là hỏi / trả lời thôi em. Nguyên thủy câu hỏi tiếng Anh là: "From the above illustration, please identify the possible problem that might occur to a database system. From that, do a "bullet points" analysis to identify the possibilities that lead to the problem and an outline solution to prevent it. From the security perspective, the above problem may fall in which security principle?" Anh tách nó ra thành a, b, c cho rõ hơn đó thôi. :P ]]>
/hvaonline/posts/list/28732.html#177158 /hvaonline/posts/list/28732.html#177158 GMT
Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu" /hvaonline/posts/list/28732.html#177242 /hvaonline/posts/list/28732.html#177242 GMT Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu"

H3x4 wrote:
Em xin phép trả lời theo hiểu biết của mình : a. Đối với hệ cơ sở dữ liệu , tình trạng trên là tình trạng deadlock . Tưởng tượng chúng ta có 3 table , và 3 user tương ứng với 3 ngả đường và 3 chiếc ô tô trong hình .Trong đó table A một thành phần có quan hệ ràng buộc với table B , table B lại ràng buộc với table C và table C ràng buộc với table A . có 3 user đang write vào 3 table ở các thuộc tính trong 3 bảng tương ứng với 3 chiêc ô tô đã đi được một đoạn (các mũi tên xanh lá cây, xanh da trời và đỏ thể hiện điều này ) cho đến lúc gặp thuộc tính ràng buộc thì writer 1 đang viết vào table A phải viết tiếp ( chiếc xe có mũi tên màu xanh da trời muốn đi tiếp ) những nó phải đợi writer 2 đang viết ở table B hoàn thành công việc (chiếc xe màu xanh lá cây ) nhưng nó phải đợi writer 3 đang viết ở table C hoàn thành công việc . Và writer 3 lại đang đợi writer 1 . Tạo ra một circular waiting dấn tới tình trạng deadlock . b.Nguyên nhân dẫn tới tình trạng trên là do đặt các tham chiếu A->B, B->C, C->A biện pháp để ngăn chặn là từ lúc thiết kế csdl phải chú ý tới vấn đề này . c.Đối với bảo mật , tình trạng trên vi phạm nguyên tắc thứ 3 tức là tính availability .Nghĩa là tài nguyên phải được sử dụng bởi các thành phần đã được xác nhận . Việc này dẫn tới tình trạng từ chối dịch vụ (DOS) . Em trả lời xong rồi, có gì mong mọi người chỉ bào . Cám ơn anh conmale vì câu hỏi :) 
---> "chú ý" là chú ý thế nào? Đây chưa phải là giải pháp.]]>
/hvaonline/posts/list/28732.html#177244 /hvaonline/posts/list/28732.html#177244 GMT
Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu"

conmale wrote:
---> "chú ý" là chú ý thế nào? Đây chưa phải là giải pháp
Đầu tiên là hạn chế việc tạo ra các mối quan hệ ràng buộc chồng chéo như vậy khi thiết kế cơ sở dữ liệu ở bước ban đầu . Còn giả sử như bắt buộc phải làm như vậy thì tạo ra một phương thức để quản lí việc các writer viết vào các bảng , nghĩa là một khi có một writer đang viết thì tất cả các bảng có liên quan tới bảng đang được viết phải được khóa , chờ đến lúc nào writer viết xong thì mới mở ra để cho các writer khác có thể viết . Em nghĩ có 2 giải pháp như vậy :D]]>
/hvaonline/posts/list/28732.html#177245 /hvaonline/posts/list/28732.html#177245 GMT
Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu"

H3x4 wrote:

conmale wrote:
---> "chú ý" là chú ý thế nào? Đây chưa phải là giải pháp
Đầu tiên là hạn chế việc tạo ra các mối quan hệ ràng buộc chồng chéo như vậy khi thiết kế cơ sở dữ liệu ở bước ban đầu . Còn giả sử như bắt buộc phải làm như vậy thì tạo ra một phương thức để quản lí việc các writer viết vào các bảng , nghĩa là một khi có một writer đang viết thì tất cả các bảng có liên quan tới bảng đang được viết phải được khóa , chờ đến lúc nào writer viết xong thì mới mở ra để cho các writer khác có thể viết . Em nghĩ có 2 giải pháp như vậy :D 
Vậy với 3 chiếc xe ở trên, chúng được "lock" và "unlock" tuần tự thế nào để tránh tình trạng "deadlock"? PS: chúng ta đang dùng "xe" để làm ví dụ cho nên cố gắng dùng "xe" để phân tích, đừng dùng "bảng".]]>
/hvaonline/posts/list/28732.html#177247 /hvaonline/posts/list/28732.html#177247 GMT
Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu"

conmale wrote:
Vậy với 3 chiếc xe ở trên, chúng được "lock" và "unlock" tuần tự thế nào để tránh tình trạng "deadlock"? PS: chúng ta đang dùng "xe" để làm ví dụ cho nên cố gắng dùng "xe" để phân tích, đừng dùng "bảng". 
Với 3 chiếc xe ở trên , trong một thời điểm nào đó có 2 chiếc đang trên đường của chúng thì chúng ta sẽ khóa con đường còn lại , chiếc thứ 3 không được chạy cho đến khi nào có 1 chiếc xe hoàn thành hành trình của mình .]]>
/hvaonline/posts/list/28732.html#177248 /hvaonline/posts/list/28732.html#177248 GMT
Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu" phân tích thì dạng khai triển 1) Trường hợp 1 2) Trường hợp 2 3) Trường hợp n ........ nên được tận dụng và ngọn ngành. Nếu không thì nó chỉ dừng lại ở chỗ "nhận định chung" mà thôi.]]> /hvaonline/posts/list/28732.html#177261 /hvaonline/posts/list/28732.html#177261 GMT Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu"

conmale wrote:
OK. Nếu "chấm điểm" một cách dễ dãi ngay lúc này thì điểm sẽ là 6 trên 10.. 
Vậy là em còn có thể nộp bài khác .Em sẽ cố gắng viết và phân tích kĩ lưỡng để nộp bài khác . Cám ơn anh !]]>
/hvaonline/posts/list/28732.html#177262 /hvaonline/posts/list/28732.html#177262 GMT
Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu"

H3x4 wrote:

conmale wrote:
OK. Nếu "chấm điểm" một cách dễ dãi ngay lúc này thì điểm sẽ là 6 trên 10.. 
Vậy là em còn có thể nộp bài khác .Em sẽ cố gắng viết và phân tích kĩ lưỡng để nộp bài khác . Cám ơn anh ! 
Em cho biết em đã rút tỉa được gì trong suốt quá trình nhận câu trắc nghiệm --> đánh giá câu trắc nghiệm --> tìm tòi thông tin --> trả lời --> nhận câu "chấm điểm" trên?]]>
/hvaonline/posts/list/28732.html#177267 /hvaonline/posts/list/28732.html#177267 GMT
Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu"

conmale wrote:

H3x4 wrote:

conmale wrote:
OK. Nếu "chấm điểm" một cách dễ dãi ngay lúc này thì điểm sẽ là 6 trên 10.. 
Vậy là em còn có thể nộp bài khác .Em sẽ cố gắng viết và phân tích kĩ lưỡng để nộp bài khác . Cám ơn anh ! 
Em cho biết em đã rút tỉa được gì trong suốt quá trình nhận câu trắc nghiệm --> đánh giá câu trắc nghiệm --> tìm tòi thông tin --> trả lời --> nhận câu "chấm điểm" trên? 
Riêng về phần nhận , đánh giá và tìm kiếm thông tin thì đầu tiên em đọc kĩ câu hỏi của anh và tìm cách thu nhỏ phạm vi suy nghĩ của mình dựa vào cái hình trên . Thu hẹp phạm vi lại trong những gì liên quan đến deadlock từ đó tìm ra những điểm nào liên quan đến deadlock và có thể gây ra tranh chấp trong database system. Tiếp theo là vận dụng những kiến thức đã có để áp dụng vào trường hợp 3 chiếc ô tô này .tiếp theo là suy nghĩ lại xem trong các bước trên có bước nào mình bỏ lỡ một yếu tố nào không . Cuối cùng là tham khảo ý kiến của một người bạn và đưa ra câu trả lời cuối cùng . Còn trong quá trình lúc anh "chấm điểm" em rút ra được một điều là em còn hời hợt ,chưa khai thác đến tận gốc rễ những thứ mà mình tìm ra , chưa đi sâu vào biện pháp cụ thể, chỉ mới ở mức chung chung , nhận định chứ chưa phân tích rõ ràng từng trường hợp và cách giải quyết .]]>
/hvaonline/posts/list/28732.html#177270 /hvaonline/posts/list/28732.html#177270 GMT
Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu" /hvaonline/posts/list/28732.html#177297 /hvaonline/posts/list/28732.html#177297 GMT Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ li

nbthanh wrote:
Thử đi hướng khác xem sao (phân tính dạng trường hợp 1,2,3 như anh conmale nhé!): Trường hợp 1: MySQL có lệnh LOCK TABLES và UNLOCK TABLES Mô tả: - Request 1 được gởi lên, table bị lock (để làm chuyện gì đó); chẳng may request 1 bị kết thúc giữa chừng một cách bất thường, table chưa được unlock - Request 2,3,4...n gởi lên sau sẽ phải nằm chờ mà không làm gì được vì table giờ đã bị lock cho đến khi MySQL hoặc Application restart. (có thể đây không phải là 1 ví dụ tốt cho "deadlock" nhưng nó cũng thể hiện được vấn đề là "đợi mãi mà resource không được giải phóng để dùng tiếp").  
Không phải deadlock mà là livelock.

nbthanh wrote:
Thực tế: - Bằng cách đưa vào các dữ liệu "không bình thường", kẻ tấn công có thể làm 1 request "chết" giữa chừng --> table/db thế là bị lock mãi Khắc phục: - Open for discussion :D Trường hợp 2,3,4: theo hướng trên tìm thêm xem thử? :-) 
Phần lớn các database vendor dùng connection termination để chấm dứt transaction. Điền này khiến database hoặc middle-ware phải actively monitor liveliness of requesters. ]]>
/hvaonline/posts/list/28732.html#177303 /hvaonline/posts/list/28732.html#177303 GMT
Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu" /hvaonline/posts/list/28732.html#177309 /hvaonline/posts/list/28732.html#177309 GMT Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu"

H3x4 wrote:
Nếu nói như anh nbthanh thì trường hợp như 3 chiếc ô tô ở trên đâu có bao giờ xảy ra được . Ban đầu em cũng không hiểu làm sao có thể xảy ra trường hợp này được , để deadlock thì phải dính vào writer , tức là có thể chia ra làm các trường hợp 1 writer / nhiều table , nhiều writer / nhiều table , nhiều writer / 1 table . Và cái của em nói thuộc loại 3 writer/3 table , mấy trường hợp kia em không biết làm cách nào để nó tạo ra deadlock như trong hình trên cả . Hay là còn trường hợp nào khác thì mấy anh góp ý . @0xdeadbeef : livelock là sao vậy bạn ? 
Xảy ra chứ sao không. Giả sử 3 xe tới cùng 1 lúc mà không ai nhường ai thì kẹt liền. Thấy kẹt xe ở SG và Hn không? :-)]]>
/hvaonline/posts/list/28732.html#177319 /hvaonline/posts/list/28732.html#177319 GMT
Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ li

nbthanh wrote:

H3x4 wrote:
Nếu nói như anh nbthanh thì trường hợp như 3 chiếc ô tô ở trên đâu có bao giờ xảy ra được . Ban đầu em cũng không hiểu làm sao có thể xảy ra trường hợp này được , để deadlock thì phải dính vào writer , tức là có thể chia ra làm các trường hợp 1 writer / nhiều table , nhiều writer / nhiều table , nhiều writer / 1 table . Và cái của em nói thuộc loại 3 writer/3 table , mấy trường hợp kia em không biết làm cách nào để nó tạo ra deadlock như trong hình trên cả . Hay là còn trường hợp nào khác thì mấy anh góp ý . @0xdeadbeef : livelock là sao vậy bạn ? 
Xảy ra chứ sao không. Giả sử 3 xe tới cùng 1 lúc mà không ai nhường ai thì kẹt liền. Thấy kẹt xe ở SG và Hn không? :-) 
Hoặc cùng nhường rồi cùng đi 1 lúc thì sẽ đưa đến livelock. Theo định nghĩa livelock là lúc phải đình trễ nhưng vẫn thay đổi trạng thái (lúc nhường, lúc đi). Tuy nhiên, theo thói quen tôi vẫn cho rằng đình trễ vì một live thread/process nào đó là livelock :-) ]]>
/hvaonline/posts/list/28732.html#177320 /hvaonline/posts/list/28732.html#177320 GMT