[Question] [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ liệu" |
14/04/2009 18:25:40 (+0700) | #1 | 177105 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Hãy xem và phân tích bức hình sau:
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. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] 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" |
15/04/2009 03:31:20 (+0700) | #2 | 177154 |
nbthanh
HVA Friend
|
Joined: 21/12/2001 14:51:51
Messages: 429
Offline
|
|
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. |
|
|
|
|
[Question] 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" |
15/04/2009 04:08:56 (+0700) | #3 | 177158 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
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. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] 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" |
15/04/2009 20:50:01 (+0700) | #4 | 177242 |
|
H3x4
Member
|
0 |
|
|
Joined: 02/04/2009 00:03:16
Messages: 242
Offline
|
|
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 |
|
|
|
|
[Question] 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" |
15/04/2009 20:57:34 (+0700) | #5 | 177244 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
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. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] 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" |
15/04/2009 21:09:04 (+0700) | #6 | 177245 |
|
H3x4
Member
|
0 |
|
|
Joined: 02/04/2009 00:03:16
Messages: 242
Offline
|
|
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 |
|
|
|
|
[Question] 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" |
15/04/2009 21:18:49 (+0700) | #7 | 177247 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
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
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". |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] 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" |
15/04/2009 21:32:22 (+0700) | #8 | 177248 |
|
H3x4
Member
|
0 |
|
|
Joined: 02/04/2009 00:03:16
Messages: 242
Offline
|
|
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 . |
|
|
|
|
[Question] 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" |
15/04/2009 22:36:24 (+0700) | #9 | 177261 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
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. Câu trả lời về mặt khái niệm thì được nhưng khá hời hợt (chưa sâu). Một sinh viên đại học nên có câu trả lời sâu hơn và thuyết phục hơn.
Khi nói đến chữ 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. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] 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" |
15/04/2009 22:40:40 (+0700) | #10 | 177262 |
|
H3x4
Member
|
0 |
|
|
Joined: 02/04/2009 00:03:16
Messages: 242
Offline
|
|
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 ! |
|
|
|
|
[Question] 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" |
15/04/2009 22:52:23 (+0700) | #11 | 177267 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
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? |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] 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" |
15/04/2009 23:04:40 (+0700) | #12 | 177270 |
|
H3x4
Member
|
0 |
|
|
Joined: 02/04/2009 00:03:16
Messages: 242
Offline
|
|
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 . |
|
|
|
|
[Question] 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" |
16/04/2009 01:23:15 (+0700) | #13 | 177297 |
nbthanh
HVA Friend
|
Joined: 21/12/2001 14:51:51
Messages: 429
Offline
|
|
Có nhận xét thế này:
a) Bạn H3x4 có câu trả lời đúng là deadlock
c) Theo tôi bạn H3x4 cũng trả lời đúng là availability và DOS (không biết còn thiếu gì không nhỉ?)
b) Theo tôi thì phần này trả lời là hoàn toàn chưa đạt yêu cầu!
Không rõ ý câu hỏi của anh conmale là ở dạng nào. Nhưng nếu là dạng academic thì câu trả lời cho detect deadlock và prevent/solve deadlock đã nằm trong sách vở.
Còn nếu là ở ý đồ "thực tế" thì ví dụ bạn H3x4 đưa ra làn bất hợp lý:
- Trên thực tế có ai đó lại cố ý đi tạo các table mà phụ thuộc lẫn nhau thành 1 loop như thế chăng?
- Mà nếu có thì ngay từ đầu system đã không chạy được rồi (vì làm sao insert dữ liệu vào?)
- Còn nếu nói là tạo foreign key sau khi data đã có thì cũng không ổn lắm vì giả sử có tạo được thì vừa tạo xong là system đã không còn cho phép việc thêm dữ liệu mới rồi.
- v.v...còn nhiều điểm bất hợp lý mà trong thực tế nói chung là không thể xảy ra.
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").
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
Trường hợp 2,3,4: theo hướng trên tìm thêm xem thử? |
|
|
|
|
[Question] Re: [Trắc nghiệm] Phân tích và xác định dạng sự cố với "hệ cơ sở dữ li |
16/04/2009 02:06:13 (+0700) | #14 | 177303 |
|
0xdeadbeef
Member
|
0 |
|
|
Joined: 19/11/2005 03:51:16
Messages: 6
Offline
|
|
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
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.
|
|
|
|
|
[Question] 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" |
16/04/2009 02:41:52 (+0700) | #15 | 177309 |
|
H3x4
Member
|
0 |
|
|
Joined: 02/04/2009 00:03:16
Messages: 242
Offline
|
|
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 ? |
|
|
|
|
[Question] 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" |
16/04/2009 03:23:50 (+0700) | #16 | 177319 |
nbthanh
HVA Friend
|
Joined: 21/12/2001 14:51:51
Messages: 429
Offline
|
|
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? |
|
|
|