Tài liệu Bàn về tính chuẩn hoá trong các cơ sở dữ liệu hiện có pptx

6 475 0
Tài liệu Bàn về tính chuẩn hoá trong các cơ sở dữ liệu hiện có pptx

Đang tải... (xem toàn văn)

Thông tin tài liệu

Lĩnh vực Công nghệ thông tin Bàn về tính chuẩn hóa trong các sở dữ liệu hiện có TS.Phan Đăng Cầu Khoa Công nghệ thông tin I Tóm tắt: Chuẩn hóa là một khái niệm khá quan trọng trong lý thuyết sở dữ liệu quan hệ và là một trong những yêu cầu cần đợc đảm bảo khi xây dựng một sở dữ liệu (CSDL). Nói một cách trực quan thì tính chuẩn hóa bảo đảm cho CSDL loại trừ đợc tính không nhất quán và tránh đợc sự d thừa dữ liệu. Tuy nhiên nếu khảo sát một số CSDL hiện ở Việt nam, ta thể thấy rằng khá nhiều trờng hợp tính chuẩn hóa bị vi phạm, nếu ta hiểu tính chuẩn hóa đúng nh lý thuyết đã định nghĩa. Tuy nhiên, vì bản thân tác giả không phải là chuyên gia về lý thuyết CSDL nên mục đích bài viết này không nhằm phê phán thực tế đó mà ngợc lại, thông qua một số kinh nghiệm thực tế đã trải qua, tác giả muốn thuyết phục các nhà lý thuyết và bạn đọc rằng, thực ra trong thực tế tính chuẩn hóa nên đợc hiểu một cách mềm dẻo hơn: CSDL phải đợc bảo đảm chuẩn hóa trong thao tác và xử lý, nhng về hình thức thể không chuẩn hóa ở mức nào đó. Thí dụ trong một bảng dữ liệu sự lặp lại của tên tỉnh thì không nhất thiết chỉ tỉnh xuất hiện nh tính chuẩn hóa đòi hỏi, mà thể đồng thời cả mã tỉnh và tên tỉnh. Trong một số trờng hợp khi CSDL đợc bảo trì trong một môi tr- ờng mà độ an toàn không cao thì đôi khi sự d thừa thể trở thành những thông tin ích giúp ta hiệu chỉnh và khôi phục dữ liệu. Nếu ví von một cách hình ảnh thì việc làm này cũng giống nh khi ta sắp lên đờng đi đến một nơi mà mọi thứ không dễ mua thì nên thêm một số đồ dự phòng thiết yếu, thí dụ nên mang thêm một chiếc lốp xe, cho các lốp xe đang dùng còn rất tốt. 1. Khái niệm chuẩn hóa trong CSDL Trong mục này chúng tôi trình bày lợc một số khái niệm bản liên quan đến tính chuẩn hóa trong CSDL quan hệ. 1.1. Khái niệm thực thể Thực thể là một đối tợng cụ thể tồn tại trong thế giới thực. Đối tợng này thể là vật chất nhìn thấy đợc và thể tiếp xúc đợc bằng tay nh con ngời, hạt cát, mặt hàng; nhng cũng thể là khái niệm trừu tợng nh dự án, kế hoạch 1.2. Định nghĩa quan hệ Cho tập hữu hạn các phần tử U = {A 1 , A 2 , ,A n }. Thông thờng A i là các thuộc tính của một thực thể nào đó. Tập U đợc gọi là tập các thuộc tính. Mỗi phần tử của A i của tập U miền giá trị tơng ứng, ta ký hiệu là D i = dom(A i ) (dom = domain, tức là miền). Mỗi tập con R của tích Descartes (Đề-Các) của các miền giá trị dom(A i ) với i = 1,2,3, , n đợc gọi là một quan hệ trên U và đợc ký hiệu là R (U) hay là R (A 1 , A 2 , ,A n ). Vậy R là quan hệ trên tập thuộc tính U nếu: R D 1 x D 2 x x D n Ta cũng thể viết R = {(d 1 ,d 2 , ,d n ) / d i D i , i = 1,2, ,n} Học viện Công nghệ BCVT Hội nghị Khoa học lần thứ 5 Các phần tử t = (d 1 ,d 2 , ,d n ) R đôi khi đợc gọi là các bộ, khi cài đặt trên máy tính thì đợc gọi là các bản ghi (record). Phần tử thứ i của t tơng ứng với thuộc tính A i và đợc ký hiệu là t.A i . Nói chung nếu X là một số thuộc tính nào đó trong U (tức là X U) thì ta ký hiệu t.X là các thành phần của t tơng ứng với các thuộc tính trong X. Nh vậy thì một phần tử t bất kỳ của R cũng thể viết là t.U, tuy nhiên trong trờng hợp này để đơn giản ta chỉ viết là t. Từ định nghĩa trên ta thấy quan hệ R là một bảng hai chiều, trên cột thứ i là các giá trị của dom(A i ), trên mỗi dòng của bảng là bộ n giá trị của các miền giá trị của các thuộc tính A 1 , A 2 , , A n . Mỗi dòng là một phần tử của quan hệ. Khi cho tập thuộc tính U là ta đã cho bộ khung cho một tập các quan hệ. Vì vậy ngời ta th- ờng gọi tập thuộct tính U là lợc đồ quan hệ. Cơ sở dữ liệu quan hệ là một tập hợp các quan hệ biến thiên theo thời gian. nghĩa là số lợng và nội dung các bộ trong một quan hệ thay đổi tùy thuộc vào đối tợng thực tế mà nó mô tả. Hệ quản trị sở dữ liệu quan hệ là hệ thống phần mềm trợ giúp cho ngời sử dụng trong việc tạo lập và khai thác sở dữ liệu quan hệ. 1.3. Khóa của một quan hệ Siêu khóa (super key) của một quan hệ R trên tập thuộc tính U = {A 1 , A 2 , ,A n } là tập con S U sao cho không hai phần tử nào của R trùng nhau trên S. Viết một cách hình thức ta có: x,y R xy x.Sy.S Ta thấy rằng nếu S là siêu khóa thì mọi S', sao cho S S' U , cũng là siêu khóa. Nếu K là siêu khóa, nhng bất kỳ tập con thực sự nào của nó đều không phải là siêu khóa thì K đợc gọi là khóa. 1.4. Phụ thuộc hàm Phụ thuộc hàm là một khái niệm bản đợc xây dựng để mô tả các ràng buộc dữ liệu trong một sở dữ liệu. Phụ thuộc hàm trên một quan hệ Cho tập thuộc tính U và X, Y là các tập con của U. R là một quan hệ trên U. Ta nói rằng Y phụ thuộc hàm vào X, ký hiệu là X Y, trên R nếu với mọi phần tử p, q của R mà chúng bằng nhau trên tập X thì cũng bằng nhau trên Y. Ta thể diễn đạt điều này bằng các ký hiệu toán học nh sau: p, q R, p.X=q.X p.Y = q.Y Phụ thuộc hàm trên lợc đồ quan hệ Cho lợc đồ quan hệ U = {A 1 , A 2 , A n }. Ta nói rằng Y phụ thuộc hàm vào X trên lợc đồ quan hệ U , nếu X Y trên mọi quan hệ R trên U. Nếu sử dụng ký hiệu ta có: R(U), p, q R ,p.X=q.X p.Y = q.Y Nếu một tập phụ thuộc hàm F trên một lợc đồ quan hệ U thì ta nói rằng một đồ quan hệ W = <U,F>. Học viện Công nghệ BCVT Lĩnh vực Công nghệ thông tin 1.5. Chuẩn hóa lợc đồ quan hệ Dạng chuẩn 1NF (First Normal Form) Một lợc đồ U (hoặc một đồ quan hệ W = <U,F>) ở dạng chuẩn 1NF nếu các miền giá trị của các thuộc tính dều đơn trị. Về sau trong các dạng chuẩn 2NF, 3NF ta xét trên sơ đồ quan hệ W = <U,F>. Tuy nhiên nơi nào đó ta nói R thì hiểu là quan hệ bất kỳ trên U. Dạng chuẩn 2NF Giả sử X và Y là hai tập con của U. Ta nói rằng Y là phụ thuộc hàm đầy đủ vào X nếu Y phụ thuộc hàm vào X nhng Y không phụ thuộc hàm vào bất kỳ tập hợp con thực sự nào của X. Lợc đồ quan hệ U đợc gọi là ở dạng chuẩn 2NF nếu nó là 1NF và mỗi thuộc tính không khóa của R là phụ thuộc hàm đầy đủ vào khóa. Vì mỗi thuộc tính bất kỳ luôn luôn phụ thuộc hàm vào khóa. Ta thể phát biểu lại định nghĩa trên để nhấn mạnh hơn bản chất của dạng chuẩn 2NF: Lợc đồ quan hệ U đợc gọi là ở dạng chuẩn 2NF nếu nó là 1NF và mỗi thuộc tính không khóa của R là không phụ thuộc hàm vào một phần của khóa. Dạng chuẩn 3NF Dạng chuẩn hai cho phép loại trừ d thừa về khóa. Dạng chuẩn ba cho phép loại bỏ các phụ thuộc bắc cầu. Định nghĩa dạng chuẩn ba (Third normal form): Một đồ quan hệ W = <U,F> đợc gọi là ở dạng chuẩn 3NF nếu và chỉ nếu: Nó là dạng chuẩn hai. Các thuộc tính không khóa không phụ thuộc hàm vào tập con không phải khóa. Cho đồ quan hệ W = <U,F>, XU. Thuộc tính A trong U đợc gọi là phụ thuộc bắc cầu vào X nếu tồn tại tập YU sao cho: XY, YA, Y -/ X và AXY Trong trờng hợp chỉ một khóa, thể định nghĩa quan hệ ở dạng chuẩn ba nh sau: Nó là dạng chuẩn hai. Các thuộc tính không khóa, không phụ thuộc bắc cầu vào khóa. Ngời ta xây dựng nhiều khái niệm chuẩn hóa. Tuy nhiên khi thiết kế các CSDL trong thực tế thì ngời ta thờng chỉ đòi hỏi là CSDL phải dạng chuẩn 3NF. 2. Một số CSDL không thỏa tính chuẩn hóa trong thực tế Sau đây chúng tôi chỉ ra một số trờng hợp các CSDL không thỏa tính chuẩn hóa. Đây là những CSDL chúng tôi dịp bảo trì hoặc tham gia xây dựng. 2.1. CSDL ngời hồi hơng Việt nam Đầu những năm 90 chúng tôi dịp làm việc trong dự án trợ giúp ngời hồi hơng Việt nam của Cộng đồng châu Âu (EC). Một trong những công việc của chúng tôi là bảo trì CSDL ngời hồi hơng Việt nam. CSDL này do Cao ủy Liên hợp quốc về ngời tị nạn ở Hồng Công cung cấp. CSDL gồm nhiều bảng, trong đó bảng quan trọng nhất là RETURNEE.DBF chứa danh sách những ngời hồi hơng. Danh sách này đợc cập nhật thờng xuyên. Cho đến khi kết thúc dự Học viện Công nghệ BCVT Hội nghị Khoa học lần thứ 5 án thì tổng số ngời hồi hơng khoảng 120 nghìn ngời. Tệp RETURNEE.DBF nhiều trờng, ví dụ số cao ủy gồm 12 ký tự, họ tên, mã tỉnh, mã huyện, tên tỉnh, tên huyện, làng xã Dễ thấy rằng các trờng tên tỉnh và tên huyện là d thừa vì trong tệp này đã mã tỉnh, mã huyện, đồng thời các tệp danh sách tỉnh, danh sách huyện. Tệp này khóa là số cao ủy. Nh vậy ta thể thấy là tên tỉnh phụ thuộc hàm vào mã tỉnh, tên huyện phụ thợc hàm vào mã tỉnh và mã huyện. Nh vậy CSDL này không thỏa tính chuẩn hóa 3NF. Vào đầu những năm 90 cấu hình của các máy vi tính còn rất thấp: đĩa cứng chỉ khoảng 40 M, bộ nhớ trong 1 M. Nh vậy với tệp hàng trăm nghìn bản ghi thì sự d thừa là rất đáng kể. Ban đầu bản thân chúng tôi cũng thấy rằng thiết kế nh vậy là không hợp lý. Tuy nhiên về sau trong quá trình bảo trì, chúng tôi nhận ra rằng lúc dữ liệu d thừa lại trở thành những thông tin ích giúp chúng tôi hiệu chỉnh số liệu. Hàng tháng khi nhận số liệu mới chúng tôi phải kiểm tra kỹ trớc khi cập nhật. Nhiều lúc xảy ra trờng hợp ngời trong danh sách mới thực ra đã trong danh sách cũ, nhng chỉ vì một số sai sót trong mã cao uỷ hay mã tỉnh, mã huyện. Lúc này nếu kiểm tra bằng mắt thể dễ dàng phát hiện ra sai sót nhờ vào thông tin d thừa. Mã tỉnh, mã huyện là các con số không tính gợi nhớ: 01 là Hà nội, 02 là Hải Phòng, 03 là Tp HCM Nếu chỉ căn cứ vào mã số thì chỉ cần một chút sai sót thì thể chuyển một ngời từ Hà Nội sang tỉnh khác. Còn nếu thêm thông tin tên tỉnh thì rất khó thể xẩy ra sai sót tơng tự. Thật vậy, nếu không phải là cố tình thì rất khó bằng một vài cú gõ nhầm để chuyển từ "Hà Nội" thành "Hải Phòng". 2.2. Chơng trình quản lý đào tạo ngời hồi hơng Việt nam Cũng vào những năm 90 chúng tôi viết phần mềm quản lý đào tạo cho dự án ngời hồi hơng với sự giúp đỡ của chuyên gia thiết kế ngời Anh. Lúc đầu CSDL đợc thiết kế bảo đảm tính chuẩn hóa. Chơng trình này đợc cài đặt ở các tỉnh, do nhiều ngời thao tác. Ban đầu chúng tôi đã bảo mật dữ liệu bằng cách chỉ cho ngời sử dụng thao tác với dữ liệu thông qua chơng trình. Để làm điều này, chúng tôi mã hóa các tệp CSDL để ngời dùng không thể mở đợc. Các tệp này chỉ đợc giải mã khi chơng trình bắt đầu hoạt động. Tuy nhiên điều này cũng gây nên một trở ngại: các tệp dữ liệu *.DBF thờng hay bị hỏng phần đầu file khi sự cố điện bất thờng hoặc virus. Nếu là tệp không mã hóa thì thể dùng các tiện ích NC khôi phục, còn nếu tệp đã mã hóa thì đành chịu. Chính vì vậy chúng tôi đành khuyên ngời dùng tự ý thức khi sử dụng và để nguyên tệp không mã hóa. Khi nhiều ngời thao tác thì dữ liệu th- ờng sai sót. Về sau đối với những mã số mà chỉ cần một sai sót nhỏ là chuyển thành một mã khác ví dụ 01, 02, 03 thì chúng tôi phải lu thêm thông tin giải thích bên cạnh để dựa vào các thông tin này hiệu chỉnh số liệu khi sai sót. Ví dụ bên cạnh số cao uỷ còn thêm họ tên, bên cạnh mã tỉnh còn tên tỉnh Và nh vậy CSDL trở thành không chuẩn hóa. 2.3. Chơng trình kế toán quản lý các công trình xây lắp bu điện Trong năm 2002, do nhu cầu nảy sinh từ một lớp bồi dỡng tin học cho các kế toán viên, chúng tôi đã viết phiên bản thử nghiệm chơng trình kế toán quản lý các công trình xây lắp bu điện. Chơng trình đó hiện nay vẫn đợc công ty VTN sử dụng và đã giảm nhẹ đợc một số công việc của các kế toán viên. Khi thiết kế chơng trình này chúng tôi xây dựng nhiều bảng dữ liệu, ví dụ danh sách các công ty đối tác, danh sách các công trình, danh sách các ban quản lý, danh sách các tài khoản, tệp chứa thông tin kế toán liên quan giữa công ty và các đối tác, tệp chứa thông tin kế toán giữa công ty với Tổng cồng ty Nếu theo quan điểm chuẩn hóa thì trong tệp QLCT.DBF chứa thông tin kế toán với các đối tác chỉ cần mã công ty, mã công trình, mã tài khoản nợ, mã tài khoản Tuy nhiên chúng tôi thấy rằng các mã công trình và mã các công ty là những con số không tính gợi nhớ, rất dễ bị nhầm lẫn từ công trình này sàng công trình khác, từ đơn vị này sang đơn vị khác, ví dụ đó là các con số 561, 562, 5601, 5602 hay 22, 23, Sự nhầm lẫn trong kế toán phải đợc loại trừ đến mức cao nhất. Do Học viện Công nghệ BCVT Lĩnh vực Công nghệ thông tin đó ngoài mã công trình và mã công ty chúng tôi thêm các trờng tên công ty và tên công trình vào trong tệp QLCT.DBF. Đối với các tài khoản thì sự khác biệt khá rõ ràng: ví dụ 1111 là tài khoản tiền mặt, 4141 là Quỹ đầu t phát triển, 1131 Tiền Việt nam đang chuyển nghĩa là khó nhầm từ tài khoản này sang tài khoản khác. Do vậy đối với các tài khoản thì chúng tôi cho rằng không cần thêm thông tin phụ trợ nh tên tài khoản chẳng hạn. Và nh thế trong tệp QLCT.DBF chỉ cáctài khoản mà không trờng tên tài khoản. CSDL nh thế này cũng không thỏa tính chuẩn hóa. Chúng tôi chấp nhận sự d thừa dữ liệu để sự an toàn cao hơn. 3. Một số nhận xét về các CSDL không thỏa tính chuẩn hoá trong thực tế Một CSDL chuẩn hóa sẽ bảo đảm đợc tính nhất quán dữ liệu và tránh đợc sự d thừa thông tin. Trong cácdụ chúng tôi nêu ra trên đây thì rõ ràng hiện tợng d thừa dữ liệu. Tuy nhiên tính nhất quán thì vẫn đợc bảo đảm. Trong các CSDL này các trờng đợc thêm vào chỉ tác dụng nh thông tin dự phòng. Khi truy xuất thông tin để làm các báo cáo thì các trờng này không tham gia. Ví dụ trong một danh sách nhân sự cả mã tỉnh và tên tỉnh thì khi làm báo cáo ta chỉ lấy mã tỉnh từ tệp danh sách nhân sự, còn tên tỉnh sẽ đợc lấy từ tệp danh sách tỉnh bên ngoài, vì vậy sẽ tránh đợc hiện tợng không nhất quán trong tên tỉnh (Trong danh sách hàng ngàn ngời với hàng ngàn tên tỉnh thì dễ sự không nhất quán). Hay khi nhập số liệu cũng vậy, ngời sử dụng không cần nhập các trờng phụ trợ mà các trờng này sẽ đợc tự động nhập thông tin. Vậy ta thể nói rằng tuy về hình thức các CSDL đã nêu không chuẩn hóa nhng về mặt thao tác thì vẫn bảo đảm tính chuẩn hóa. Ngày nay dung lợng các thiết bị nhớ đã tăng lên đáng kể. Việc chấp nhận d thừa dữ liệu để tăng độ an toàn theo chúng tôi nghĩ là ích và nên làm trong một số trờng hợp. Khi nào thì cần thêm các trờng dự phòng? Đối với các trờng mà chỉ một sự thay đổi nhỏ thể làm sai lệch hoàn toàn ý nghĩa của trờng đó, ví dụ đang là mã công ty này trở thành mã công ty khác, mã công trình này thành mã công trình khác thì nên thêm trờng dự phòng. 4. Kết luận Trong nhiều năm cố gắng áp dụng những kiến thức lý thuyết đã học vào công việc thực tế, tôi cảm thấy câu nói nổi tiếng của Gớt thật chí lý "Mọi lý thuyết đều là màu xám, chỉ cây đời là mãi mãi xanh tơi". Cho các tính toán lý thuyết đợc thực hiện cẩn thận và chính xác đến đâu thì nó vẫn phải đợc kiểm nghiệm bằng thực tế. Chính vì vậy khi đánh giá các vấn dề thực tế trong nhiều trờng hợp chúng ta không nên chỉ dựa hoàn toàn vào các tiêu chuẩn lý thuyết đặt ra, mà phải cách nhìn mềm dẻo hơn. lẽ trong hai tiêu chuẩn: thỏa mãn các quy định của lý thuyết và hoạt động hiệu quả thì tính hiệu quả nên đợc u tiên hơn. Trở lại vấn đề thiết kế các CSDL trong thực tế: lẽ rất nhiều ngời không thích sự d thừa dữ liệu. Điều này nói chung là đúng, sự vừa đủ vẫn đỡ lãng phí hơn sự d thừa. Tuy nhiên đó là trờng hợp lý tởng, khi mọi thứ hoạt động hoàn hảo. Chúng ta thờng chỉ nói đến u điểm của sự vừa đủ, nhng lại cha thấy nhợc điểm của nó: vừa đủ nghĩa là nếu một thành phần trục trặc thì trở thành thiếu. Chính lúc đó thì sự d thừa lại phát huy tác dụng, giúp chúng ta khắc phục sự cố. Nhớ lại thời bao cấp, chúng ta phải dùng rất nhiều hộp thùng để đựng các thứ d thừa. Nhng nhiều lúc những thứ d thừa đó lại trở thành những thứ ích cho chúng ta. Sơ lợc về tác giả: Ts. Phan Đăng Cầu, sinh năm 1951. Học viện Công nghệ BCVT Hội nghị Khoa học lần thứ 5 Nhận học vị Cử nhân toán (1976) và Tiến sĩ toán (1987) tại Hungary. Hiện là giảng viên Khoa Công nghệ Thông tin I, Học Viện CNBCVT. Lĩnh vực quan tâm và nghiên cứu: Cấu trúc dữ liệu và giải thuật, Toán rời rạc, Công nghệ phần mềm, Phơng pháp số, Thống kê ứng dụng và CSDL ứng dụng. Điện thoại: Cq. 8 545 604, Nr. 8347 209, Email: minhly@fpt.vn Học viện Công nghệ BCVT . Công nghệ thông tin Bàn về tính chuẩn hóa trong các cơ sở dữ liệu hiện có TS.Phan Đăng Cầu Khoa Công nghệ thông tin I Tóm tắt: Chuẩn hóa là một khái. quan trọng trong lý thuyết cơ sở dữ liệu quan hệ và là một trong những yêu cầu cần đợc đảm bảo khi xây dựng một cơ sở dữ liệu (CSDL). Nói một cách trực

Ngày đăng: 16/01/2014, 17:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan