Tải bản đầy đủ (.pdf) (192 trang)

Cơ sở dữ liệu giáo trình nhập môn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.26 MB, 192 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>)ại sỏ quan hơ</b>

<b>ưoc đó giao dịch, bảo mật __</b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<i><b>Giáo trinh nhập mồn</b></i><b> Cớ sở dữ liệu </b>

<i><b>(TỦ SÁCH DỄ HỌC)</b></i>

<b>NHÀ XUẤT BẢN LAO ĐỘNG-XẢHỘI</b>

<b><small>Ngơ Hóa Bnh 4 - Minh Khai II* 34 Trứng IM NÓI Tel (04) e 246 913 - Fax: (04) 6 246 915</small></b>

<i><b>Bitn tứp</b></i><b> BAN BIENTÁPGIAOTRINH DAYNGHỀ</b>

<i><b>Bừabàn in:</b></i><b>NGỌCAN</b>

<b>Thực hten liủn doanh: CongtyTNHHMinh Khai S.G</b>

<b>E-tnail mk.book#nunhkhaicom.vn- Website: www.tninhkhaicom.vn</b>

<b>o Cty phết hình each Khánh Hóa</b>

<b>>Nhơ sa ch Ponagar 73 ThốngNhấtNhaTrang Khánh HịaIn1 000cuốn. khá 16 X 24 em, tại Xí nghiệpin Machincv </b>

<b>SỐ 21Bùi Thị Xuân. Quân 1, Thànhphố Hổ Chí Minh</b>

<b>Sỏđàng ký kế hoach xuấtbàn: 204-2008/CXB/21 -68/LƯXH</b>

<b>In xong vơ nộp lưuchtếuQuý II nâm 2008</b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>LỚI GIỚITHIỆU 3 sr</b>

<b>LỜI GIỚI THIỆU</b>

<b>Trongthờiđaithòng tin bùngnổ như ngảy nay.cợ </b><i><b>sà</b></i><b> dữ Ỉ1ỘU (CSDL) </b>

<b>ngàycàngđóng vai trịquan trọng trong cuộc sóngMột quyến danhbadiện</b>

<b>thoai, danh mục khách hAng hay hangtrơmđịa chí email.Web site mà bạnphái nhđdéu cán đếnCSDL dể lưu trửvà truy xuất.Giáo trinh nháp môn</b>

<b>CSDL này 8Ồ cung cấpchoban mốt cái nhin tổng quát vẻ cơ sđ dở liệu lố gì, </b>

<b>nó dược ứng dung nhu thfi nào trong cuộc sơng</b>

<b>Giao trinh tãp trung vàocáhai nội dung lý thuyet lản thực tiro Bansẻ tiếp cận rac nội dung như</b>

<b>Giao trinh này thich hơp cho câcban mn cố thèm kiếnthúc vé cịng</b>

<b>Qghộ thông tin lản các ban đang học chuyên ngành vổtin hocBan sẻ có </b>

<b>đượcmột nén tảng vởngchíc đế tư minh xây dựng,phântích,thiếtkế các </b>

<b>hê thóng phin mém tữ nhỏđến lớn. Thongqua giáotrinh này ban cổ thí </b>

<b>lưa chon chomình nhừng hệ quẩn trị </b><i><b>ca</b></i><b>sỏ dư liệuthích hợpnhu MS Access. </b>

<b>Foxprohay Oracle. SQL Server.hiéu dươccú pháp SQL mà các hệ quản tnnãy cung cốp dỗ truy xuất và lưutrữdữ liệu được tơ't hơn</b>

<b>Chucban có mộtbortckhởiđáu đáy thủvị</b>

<i><b>MiLPVB</b></i>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>THƯ NGỎ</b>

<b>THƯ NGỎ</b>

<i><b>Kinh thưa quỷ Bạn đọc gánxaĩ</b></i>

<b>Trưdc hết, Ban xuất bản xin bày tổ lông biết ơn và niếmvmh hạnh</b>

<b>dươc dông đàoBandọcnhiệttinh ùng hộ tù sách MK.PUB.</b>

<b>Trongthơigianquachúng tôirát VUIvàcảm ơn eâc Bạn dã gửi</b>

<b>e-inail dóng góp nhiéu</b><i><b>ý</b></i> <b>kiến quỷ báu cho tùsách.</b>

<b>Muc liêuvâ phương châm phục vụ củachúng tơi là:</b>

<b>•Laodộng khoa học nghiêm túc.</b>

<b>• Chít lượng và ngồy càng chát lượng hơn.•Tátcảvi Ban doc.</b>

<b>Trong quá trinhsử dụngsách, nếu quý Bạnphát hiệnthếy bít kỷ sai </b>

<b>sótnâo </b><i><b>(dù nhỏ)</b></i><b> xin đánhdíu,ghi chú nhận xét ý kiến của Ban rabên canhrói gửi cuốn sách này cho chúng tơi theođìa chỉ:</b>

<b>E-mail </b><i><b>mk bỡồk^nưnhkhai.com.vn </b></i><b>hoặc</b> <i><b>mk pub&rninhkhai.com.vn</b></i>

<b>Chúng cỗi XIU hoàn lại cước phi bưudiệnvà gưi trả lạiBan cuốnsáchcung tên. Ngồira chúng tỏi cịn gửi tẠng Ban motcuốn sách khác trong tủ sách MK.PƯB. Bạn có thé chọn cuốn sách nàytheodanh mọc thích hợp sề gửitơiBạn</b>

<b>Vớimụcđích ngày càng nảngcao chát lương tủ sốch MKPUB. chúng </b>

<b>tồi rất mong nhãn dươc sựhơp tácnhiệttinh của quý Bạn dọc gấu xa</b>

<i><b>"MK.PƯBcùng Bạn doc đóng hành"</b></i><b> đ4Ỉnảng cao chát lượng sốchMộtlán nửa chúng tối xinchân thanh cảm ơn</b>

<i><b>MỈCPUB</b></i>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>MỤCLỤC3</b>

<b>BT</b>

<b>MỤC LỤC</b>

<b>Chương I: LÀMQUEN VỚI cơ sởDỮ LIỆU--- ---.‘l!</b>

<i><b>1 Cơ</b></i><b> sđ dừliêulagi...11</b>

<b>2 Thưc thế và quan hộ...12</b>

<b>3 Bang dư lidu(Tables)...14</b>

<b>4 Côt (Column) hoôcthuôc únh(Attribute)... lõ5 Hàng(Row). ban ghi (Record), bộ dư liệu(Tuples)...15</b>

<i><b>10. ĩ.Chu Ai (String)Lá sổ(Number)...23</b></i>

<i><b>10 2.Kifu</b></i> <b>nj?àv </b><i><b>thang (thơi gian)và tiịn tf... 23</b></i>

<i><b>lũ.3 Các kiỉư dứ liệu phưc hợp... ... ...24</b></i>

<i><b>10. 4.Dư lièu "nhạycảm"... 26</b></i>

<b>11 Kích thước cộtdừ liệu (Held size)...27</b>

<b>12. Tèo cột dử liệu... 27</b>

<b>13Đinhdang và kiếmtratính hợp lộ cua dừ liệu... 27</b>

<b>Chương 2: CHUẨN HÓA cơ sở DỮ LIÊU... ... ...29</b>

<b>1. Phu thuộc hàm ...30</b>

<b>2.Khốa và phu thuộc hàm... 31</b>

<b>3.Cđc dang chuẩnhóa dử liệu... 32</b>

<b>3</b> <i><b>1. Chuẩn hóa dang 1(JNF)... 33</b></i>

<i><b>3.2. Chuẩnhóa dang2 (2NF)...34</b></i>

<i><b>33.Chuẩnhỏa dang 3Í3NF)...—...35</b></i>

<i><b>3.4. Quanhẻ dừ liệu...37</b></i>

<i><b>3.5.Chuẩn hổadạng 4 (4NF)...39</b></i>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<i><b>3.6 Điiukiện Sũ khởp LIKE... 49</b></i>

<b>4 Lệnh chèn dữ liệu INSERT INTO...50</b>

<b>5 .Lệnhcáp nhốt đùliệu UPDATE... .51</b>

<b>6 Lệnhxâa dữliệu DELETE...52</b>

<b>7 Kiểm tra những ký nâng SQL vừnhoc cùabạn... ...53</b>

<b>16.SQL DROP xóabảng,chi mục vàcơ sờdữ liệu... 71</b>

<b>17. SQLthay dổi cấu trúc bảng ...-...72</b>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>MỤC LỤC 7ST</b>

<b>18 Hàm SQL...73</b>

<b>19 SQL GROUP BYvà HAVING...74</b>

<b>20 . SQLvà lênh SELECTINTO... 76</b>

<b>21SQL CREATE VIEW lènh tạo khung nhằn (View) eua dữliệu... 77</b>

<b>22SQL tham khao nhanh... 79</b>

<b>23 .Kiếm tra nhanh ....81</b>

<b>Chương 4:cơ SỞDỨ LIỆU ACCESS--- --- ---... 87</b>

<b>1.Tạo cơsỏ dữliệu(Database)...88</b>

<i><b>J.i. Cơsứdừliệu tutao...88</b></i>

<i><b>ĩ. 2Tợo cơ </b></i><b>sờ</b><i><b>dừ liệutửTemplate. ... 90</b></i>

<b>Chương 5: LẬP TRÌNH KỂT NỔÌ </b>

<i><b>cơsởdứ</b></i>

<b>LIỆU... ... 87</b>

<b>1.Các hệ ngón ngủquán tri cơ sở dữ liộu thế hộ 4...97</b>

<b>2.Cơ dứ liệu trong những ng&n ngư lập trinhkhác ...98</b>

<i><b>Cursors... 99</b></i>

<b>3 Câc hâmAPIgiao tiếpcơsởdừ liệu... 99</b>

<b>4. Liênkítdữ liộu VƠI thỉnh phần trực quau...101</b>

<b>6.Sừdụng báng tính Spreadsheet... ... 102</b>

<b>6.Sửdung ngỏungữ lặp trinhWeb PHP VÀ cơ sơ da liệu MySQL ...102</b>

<b>7 SQL Embeded ...104</b>

<b>8.Ưu diẻtn cùa cbuán API ...106</b>

<b>9 ODBC •Open Database Connectivity ...106</b>

<b>10. Sũ dung SQLBindCul(ODBC)...107</b>

<b>11. JDBC.10912. DB1/DBD ...110</b>

<b>13. ADO và ASP... ... 110</b>

<b>14 Nhung vần dẻ vétinhhièu quâ ...IllChương 6: METADATA, BẲO MẬT VÁ QUÀN TRỊ(DBA)---113</b>

<b>1 METADATA (Siêu da liệu)... ... . ... 113</b>

<b>2 Baomật (Security)...-... 116</b>

<b>ã Bảo vỉ mức DBMS... 118</b>

<b>4 Bảovệ mức Dgưừi đùng Han chêSQL... -... 118</b>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>a- 8_____________________________________________________MỤCLỤC</b>

<b>5. Nhà quántrịcơ dữ liệu í DBA DatabaseAdministrator!...119</b>

<b>Chương7:PHĂNTÍCH THIET kề</b>

<b>’ </b>

<b>cơsởdửliệu...121</b>

<b>1.Chu trinh ẽng của phin tíchcơ *ddơ liệu... ...122</b>

<b>2 Mơ hinh cơsổdử liộu ba mức... 124</b>

<b>3.Mị hinh hỗa quanhệ thưc thê’ị</b>

<b>ER</b>

<b>• Entity Relationship!125</b>

<i><b>4 .1. Bỉéu dièn cápđộ quan hf... 127</b></i>

<i><b>4 2.Thay thí nhữngmÀi quan hệ tam phản...129</b></i>

<i><b>4 .3.Quanhf chính yếu... 129</b></i>

<i><b>4 4 Quan hê tuy chon... 130</b></i>

<b>5. Tập hợp Lhực thé... 131</b>

<b>6 Dư thửaquanhộ... ... 132</b>

<b>7. Chia cảt quan hẻ u;m... 133</b>

<b>8 Xây dựng mỏ hình ER ... 133</b>

<b>Chương &XÁY DỰNG MƠ HỈNH QUAN HỆ THựCTHE---135</b>

<b>1 Mơ hình quánlýCõng ty ván tai xe Bu» ...135</b>

<i><b>1.1 Xác đinh thựcthỉ ... 136</b></i>

<i><b>1.2 Xácđinh các mồỉ quan hê...136</b></i>

<i><b>1.3 Vẽlược dồ ER ...—...137</b></i>

<i><b>1.4 Xácđịnhthuộctinh...137</b></i>

<i><b>2</b></i>

<i><b>Các</b></i>

<b>ván đe phát sinh VỚI mô hinh ER... 137</b>

<b>3 Mở rộngmỏ hình ER(EERhay Enhanced ER) ...138</b>

<i><b>3 1. Chuyên biệthóa.. 139</b></i>

<i><b>3 2Tổngquát hóa...140</b></i>

<b>Chương 9: ÁNH XẠ MỎ HĨNH THựC THỂER... ... 141</b>

<b>1. Quan hê là gi?...—...141</b>

<b>2 Khóangoại(ForeignKey)... 142</b>

<b>3.Chuẩn bi ánh xamò hlnh ER ...142</b>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>MỤC LỤC</b>

<i><b>3.1. Anh xạ mồi quanhệ iitn hit1:1... 142</b></i>

<i><b>3.2.Ánh xạ mơt quan hị hinhítIm...147</b></i>

<i><b>3.3. Ánh xạ quanhi n:m... 148</b></i>

<i><b>4.</b></i> <b>Tôm lưạc... —... 148</b>

<b>s.Anh xa BR mả rộng... 149</b>

<b>5.</b><i><b>ỉ. Ảnhxạnhững mốiquan hị songsong...149</b></i>

<i><b>5 2 Ảnh xa l.m trong mòi quanhi hỉn kit lòng...149</b></i>

<i><b>5 3 Ánh xa lớp cha superclass vá lápcon subclass ...150</b></i>

<b>Chương 10: ĐẠI sổ QUAN HỆ... 153</b>

<b>! Đại số quanhệlàgi9...153</b>

<b>2 ThuẠt nga...154</b>

<b>3 Toán từgh: (write)...154</b>

<b>4 Các toán lủ inch rútdư liêu...155</b>

<i><b>4.1. Quan hị lựachọnSELECT...■■...155</b></i>

<i><b>4.2.Quanhẹ chiếu PROJECT...155</b></i>

<b>10. Các vídụvé Dại Bơ quan hộ...180</b>

<i><b>10.1. Tốn tiỉđổi tin...162</b></i>

<i><b>lơ. 2. Toán tứ dẩnxuất... 162</b></i>

<i><b>103.Tương đương... 163</b></i>

<b>11. So sânh Dại sô' quan hệ và SQL.. ...164</b>

<b>Chương 11: TRANH CHAP VÀ QUÀN LÝ GIAO DỊCH---- ---185</b>

<b>1.Giao dịch (Transaction)...165</b>

<b>2.Lịch biíu chocác giao dịch... ... 166</b>

<b>3.Cập nhậtmấtmát dữ liệu....-...167</b>

<b>4.Phu thuộc không xác nhận1685. Sự máu thuán không tương thich (Inconsistency)...168</b>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<i><b>8.4.Gỉải quy ft deadlock...-...173</b></i>

<i><b>8 5. Các phương pháp tươngthíchca sở dư liệu khác...173</b></i>

<b>9 Khói phuc (Recovery)... 174</b>

<i><b>9.1.Khơi phục tù carfilethị (dump)... 174</b></i>

<i><b>9.2.Khơi phục dưa</b></i><b> váo</b><i><b>các filelag củagiao dịch... 175</b></i>

<i><b>9.3. Tri hoãncập nhật...175</b></i>

<i><b>9.4. Cápnhật tức thời... ... •••••177</b></i>

<b>10. Rollback (Quay ngược)...178</b>

<b>Chương12: LÝ THUYẾTCẢIDẬT VÀ XÂY DựNG hệ DBMS... 179</b>

<b>1.Các thành phán lõi...-... 179</b>

<b>2 Đĩa vầ Id ức bõ nhở...182</b>

<b>3. Tổ ehửc chi mục...182</b>

<i><b>3.1.Hash table...—...183</b></i>

<i><b>3.2. CAynhị phan(BinaryTree)... 185</b></i>

<i><b>3.3.Chi phi dànhchimục oà truy cáp trên chímục... ĩêb</b></i>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>Chương1:Làm quen VỚIcơ sở dữliệuH M’</b>

<i><b>Chương 1:</b></i>

<b>LÀM QUEN VỚI Cơ SỞ DỮ LIỆU</b>

<i><b>Các ván dỉ chinh 9ẻđượcdẻ cip.</b></i>

<i><b>s Các kháiniệm</b></i> <b>cơ </b><i><b>bàn vi thành phản cơsở dứ hiu</b></i>

<b>DO hiốunhưng nguyônlýcùa cơ sở dữ Iiộu trong giáo trinh uùy.trướchết chúng ta cắn hiếu qua một vài khái niệm và thuật ngứ tinhợc </b><i><b>cơ</b></i><b>bán</b>

<b>Điẻuđáutiênnhát. Cơ sỡ dữliệu làgì?</b>

<b>Dơn giản </b><i><b>cơ sà </b></i><b>dữliệulà một câu trúc hay một bộ khung biểu diỉnnhửngthộng tin liẻn quanvới nhau. Phán mốmdùng quânlývồ xử lý thông</b>

<b>tincủa</b><i><b>càu</b></i><b> trúc thông tin nayđược gọila he DBMS iHệ thống Quân lyCơ 50dùliẻu - DataBaseManagement System*. Cơ sódu liêu lã mot thành</b>

<b>Bạn cóthé nghi và hình dung đơn gián cơ sở du liệu làmột danh sáchthông tin Như trang mèn giámđiện thoai chànghan. môi tranglà mỏtdanh sách chưa các mục thông tin - gốm ten, dịa chi. sô diện thoại- tho tàvế người thuề bao diện thoại trong một vùng nàođổ (thịngtinmỏtàdỏì </b>

<b>tượng I Tátcáthông tincủa người thué baodung chungmột mâu ’Câutrue).Theo thuật ngửcùa cơ aởdừ héu.cáctrang mèngiám tương đươngvói mộtbảng(table; du lieu mAtrong dơthùng tin mịi ngươi th bao đươ€dạidienhay biểu diẻnbời một bản ghi (record) haybancó thế goilà "mẩu tin*.</b>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>11Chương1: Làm quen với </b><i><b>cơ</b></i><b>>d dữ hệu</b>

<b>Thông tin bàn ghi mơLổ véQguời thuẻ baochửa ba IQMC tto, dia chỉvà»ị </b>

<b>điện thoại. Các bản ghi dươc sáp xếp theo thứ tựabc và đươc goilà khóa</b>

<b>dung đẻ*tâm kiếmkhicần</b>

<b>C4c hlnh ánh vídụ khác vồcơ»d dử hộu cơn có thếla danh Rách</b>

<b>kháchhang, danh mục hay danh sách sinh vién. danh sáchhànghóa.và </b>

<b>ngaycả nội dungmộttrang Web củng có the xemlà một cơ sơdừ liộuNói dung danh chcờ the biếu diên trongthưctế làvơhạn</b>

<b>Đancổ thí lập mơ hình vãthiét ké một cơ sđ dừ bệu dếcátgiư bất cư </b>

<b>nhưng gidạidiện chothịng tíncồ cAu trúc.</b>

<b>2. THựC THỂ VÀ QUAN HỆ</b>

<b>Nến tang cơ bản nhất mA chúngtaco thê mõ hình hóadó là những</b>

<i><b>thụcthế </b></i><b>(Entity) vị các mối quan</b><i><b> hệ </b></i><b>(Relation)</b>

<b>Thực thề' la nhưng đói tương trong the giới thực mà chủng to cátgio </b>

<b>thông tin của chúng bén trong cơ sơ dửiiéu V1 du. chung ta có thẻ' chọn cấtgiữthòng tinvé nhan vien va các phồng ban mà nhản viên dơ làm viộc</b>

<b>Trong '.rương hơpDày.</b> <i><b>nhổn </b></i><b>nín chínhlàmótthưc the và</b><i><b>phnng han</b></i> <b>la một thựcthểkhÀc</b>

<b>Quan hộ lâ những mô) liênkết gidH cếc thực(hêUiVƠInhau. Vi dụ, một nhan viên thi </b><i><b>tam việcchơ</b></i><b>mõtphóng ban.</b> <i><b>Lám việcCho</b></i><b> chinh là ĨDỖJ quan hộ giữa thực thổ nhõn </b><i><b>ụiẠn</b></i><b> VỂ thực thế</b><i><b> phồng ban</b></i>

<i><b>Có</b></i> <b>nhiêu mốiquan he theo cấp do khác nhau. Chung có thế là </b>

<i><b>mẠtmơt</b></i> <b>íone-one).hốc</b> <i><b>mứt-nhiéu</b></i><b> (onc-many) hay</b><i><b> nhiíu-mởt (tùy thuộc</b></i>

<b>vào hướngmA bạn dang nhìn Vâơ quan hộ), thám chícổthếlaquanhệ </b>

<b>Một mơiquanhẻmơt dơì mõt (một-một) chínhxác ke: nơìhaithơc </b>

<b>thế vó)nhauNhu bản than các nhãn viên trong mộttốchiâe cơng tycómỏì</b>

<b>quan hệ một-một Vơi vị tri làm viec của mìnhơxtm</b><i><b>uiéc tại).</b></i><b> Quanhẻ</b><i><b>Làm</b></i>

<b>ban cổ thế cổ nhiíu nhản Viên lam viéc Và mộtnhơnviên lồm việc thường chi cho một phòng banHai mõi quanhệ này đượcbỉếudiẻnnhư trong hỉnh</b>

<b>1-1</b>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>Hình 1-1:</b><i><b> Cúc mói quan hị</b></i>

<b>Chu ýràng biếu diềnthực thể vàcácmơi quan hệ cũng như loại quan</b>

<b>henaolàphuthuộc vào môitrường cùng những quy tắccông việc(busmessrule) mà bạn đang hươngđếnviệcmổ hình hóa chúng. Ví dụ.</b>

<b>trongmột sd cơng ty. các nhản viên có thẻ lâmviệc cùng lúc cho nhiềuphong ban Trong trường hợp dó.quan he</b><i><b> Lam việc •Cho</b></i><b>sẻ trđ thành mỏi</b>

<b>nầodó chia sẻ chung nơilàm Việc VỚI nhản viênkhac thi mơi quan hệ</b><i><b>lảm </b></i>

<i><b>việc tai</b></i><b> khổngcịn là một dối một nửa nià sề trỏ thànhmột.Dhiẽu</b>

<b>Chú ý ring sau nảy bạn sè thây chúng takhôngthếbiểudiên quan hệ </b>

<i><b>nhitu nhiếu</b></i><b>true tiếp txong môt lươcđôquan hệ (Schema) CO </b><i><b>ư </b></i><b>dữbệu, vl hai báng không thếiA con của nhau Thay vào đổ.chúngta sè đâtkhóa ngoai trên mộc bảng trunggian kết hợpkhdc.Khichúng ta tiếp cận đến</b>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>Chương 1:Làm quen VĨI CƯ 5Ị dù bệu</b>

<b>cáchthiẻtkế CƯ SƯdữ liệu,ban sé gâp tinh huỏng này. Không cú hai hè </b>

<b>thốngnàũ giong nhau tuyệtđốivếquan hệ và thựcthế</b>

<b>3. BẢNG DỬ LIỆU (TABLES)</b>

<b>MS Access, SQL Sarver. Oracle MySQL la nhưnghỹthống quán lý</b>

<b>CƯ sờ dử liệu quan hẻ (RDBMS • RelationDatabase ManagementSystem)hỗ trự xâydung mơhìnhdữ liệu chưa tAp hơp nhưng mối quanhệ lán nhau Thuột ngữ•■quail hè" trong ngđ cảnh này khơngcịn là quanhêqua lai dạng'thánbàng quyến thuộe"mAIA quan hê chung vđi nhau qua báng dử hệu côn XOIlá</b> <i><b>table.</b></i> <b>Chuỹràng thuẠt ngữ bàng dữ liẻu "table" vá "quan hộ" hay■■relation"cổ cung nghia nhưnhauTuy nhiẻntrong giAo trinhnảy. chúng </b>

<b>ta sẽ </b><i><b>sứ </b></i><b>dung tên gotbanghaytablethay cho ■‘quanhệ"vi có thé' ban sênhám vớiquanhệ dọng nơì kết hai thựe thẻ' vđi nhau</b>

<b>Neu bạndá từng sứdụng một bang tinhcùa Excel chÁng han. thìmổt </b>

<b>bàng tinh (Sheet) cũngchinh là mộtbảngdữ liệu Mõt bâng dừ liệumàu dơn</b>

<b>gian dược minh hoa như trong hĩnh 1-2.</b>

<b>Bâng nhân viên Employee cat giơ thông tin nhàn viộn như má số </b>

<b>nhán viên IDs, tên,cổngviệcvà phóng ban ma inổi nhán vien lâm viẠc</b>

<b>Nhu bạncố thể thấy, bảng nây cất giữdữ liệuhay thống tin cùa bôn nhản</b>

<b>viêntrongmộtcông ty.</b>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>Chương 1: Làm quen vơicơ sỏ dữ liộu</b>

<b>4. CỘT (COLUMN) HOẶC THUỘC TÍNH (ATTRIBUTE)</b>

<b>Mịtbangdửlieu dưoc bieu diên bờimot hữậc nhiều cột. mòt cột(Column) hay cịn got1Á chuộc tính(Attribute) mơ tã một máu thơng tin </b>

<b>nơo dố cùadửliêu lưu trong bảng Thuậtngữcót (column)và thuộc tinh(attribute!được «ư dụng thay thô làn nhau và đéuco cùng ỷ nghía, nhưng </b>

<b>* dươr .<nì dung nhiêu hơn khi làm việc trèn cáutrúcvẠtlýcủabâng, </b>

<b>thuỏctinh thưởngdùng đê mó tà và biốu dién thựcthé cùa thế giới thực mã </b>

<b>bàng dừ hẠu đíing mo hình hóa</b>

<b>Trong Hình 1*maban cố thể thâymối nhàn viên có mót mảsổ employerĩD. một tên. một Cổng việc, vịmót miì Bốphịngbandepartment!D Đơ cOng chínhlà các cột của bảng nhần vièn mang tến </b>

<b>Employee ídơi khi chúng cịn dươc gọiláthuộctinhcùa bảng nhãn viên </b>

<b>Employee cũng khổng </b>

<b>sai)-5. HÀNG (ROW), BẢN GHI (RECORD), BỘ DỮ LIỆU (TUPLES)</b>

<b>Chung ta hãy xem ỉai bang nhân viên Employee .MỎI hãng trong </b>

<b>bângđại diệnmộtban ghi (hay mâu tin) chỡtừng nhan vien BạnCô the nghe tẻn gọi cua chung như hàng,bản ghi.mẩu tin. hoâc bòdữỉiẽu dẻu như</b>

<b>nhau ca MỎI hống hay dồng trongbâng chứa câcgiátri cua cáccột trong </b>

<b>6. KHÓA</b>

<b>Khoa lâ mộtkhái niệm rất quan trong trong viêc thiết kếvàxáy dưng</b>

<b>00 sở dữ lièu Có 5 loại khóa cơ bàn.•Siêu khơa (Super Keya).</b>

<b>•Khóaữngviên(Candidate Keys)•Khóachinh (Primary Keys),•Khóa ngoại (Foreign Keys)</b>

<b>• Khoa noi chung 'Keys)</b>

<b>Ghi chú:</b><i><b>0 đáy chùng ta chưa di </b></i><b>sáu txằo </b><i><b>cách siìdung chùng, ban sẽ</b></i>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>16 Cbưctag 1;Làm quen với co sớ dừ liệuSiêukhĩalà một (hốc nhiẻu) cột dược dùng dế xác dinh và nhảndạngramộtdồng trong bảng Một khơa nổichung (Key) ỉâthành phản tồithiểu của Siêu khĩa Vỉ du. hâvxem bảng nhân viên.</b>

<b>Chúngtacơ thế sửdụng cột employeelD và tén Name đê cùngkết </b>

<b>hơp xác dinh và nhản rabết kỳ dịng hay hàngdử liồu nàotrong bảng</b>

<b>Chang ta cúng cĩthếsữđụng tạphợp của tất cácâccộtnhư sau đế dùng lam </b>

<b>khĩa nhận dạng;</b>

<b>(empỉoyeelD,name Jơb, departmentlD).</b>

<b>Chúng chinh là nhửng</b><i><b>Stèukhĩa. </b></i><b>Tuynhièn. chúng ta khổngcán tết câ các </b>

<b>cộtđĩ</b><i><b> đỉ </b></i><b>xácđịnh haydùng đơ nhện dạng ra mộtdịng trong bàng. Chúng</b>

<b>ta chỉ cán duy nhất (ví dụ) employecID Đây làthành phán tối thiỗu hay</b>

<b>nhị nhết cùa Siếu khĩa Cĩthế nơi nĩ la t$p hợp nhị nhất của các cột cĩ thX</b>

<b>SŨ đung đế xácđinh ra một dịng dù liẻu trong bảng vâ như vây. employee!D</b>

<b>là một khĩa</b>

<b>Nào hây xemlại bảng nhản viẻn lÁn nua. Chúngta cĩ thế xácđịnh </b>

<b>mộc nhản Viên bời tồn (name) hoặcbởimãsỏ nhân vièn employeelDCá hai cột nốy dẻu cứ thếdùng lịm khoa.Chúngtagọichunglà những khĩaưng viên (Candidate key) vi chúng sè là nhửtig ứngcửviên để tadùngchonkhoa chinh(Primary key; sau này.</b>

<b>Khổa chinh(PrimaryKey)la một cộthoặctập hợp nhiếucộtmà chúng ta sỗ sử dungdế xácđinhhõcnhândangramộtdịng dữ bộu lừ mộtbàng Trong trường bợp này chúng ta sỗ chon employeelD làm khốachinh.</b>

<b>Điéunày sè tốthơnlàchọn cơt Name làm khĩa chỉnh, đơn giảnlàcĩ thế cĩ hai người trùng tân VỚI nhau.</b>

<b>Khĩangoai(Foreign Keys) làcOt chửa dừ liệudai diẻn cho viỄc liên</b>

<b>kết giứũ cic bÀngVí dụ, nếu nhìn lại Hình 1-2, bạn se thây cột</b>

<b>department!!) gxử mâ sơ' phịng ban.Dãy chinh là một kháangoạitip bợp </b>

<b>đày đủ thững tinvầ mối phịng ban sè đượcgiư trong một bảng riêng biệt. </b>

<b>VỚI departmentlD lakhĩa chinhcủabảng <16.</b>

<b>7. PHỤ THUỘC HÀM</b>

<b>Thuậtngủ phụ thuộc hâm này ban sè it nghenổidẽnhơncácthuât </b>

<b>ngừ được di cập trên dây. nhưng bạncủng cán hiếu nĩ </b><i><b>áỂ</b></i><b> nám được quế tnnhchuán hĩa màchúng ta sê tiếp cán trong phán sau.</b>

<b>Nếucĩmộtphọ thuộc hàm gỉữâ cột Avàcột R trong mộtbâng dữ liệu</b>

<b>chotrudc.chúng ta cổ thê viết A ->B. nghĩa là nếu cd giá trìcùacột Ata</b>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>Chương I: jjàm quen vdicơ sờ dử liêu 17</b>

<b>sêxdcđinhđượcKiáIn cùa cột B Vídụ. trong bảngnhânVien, nếu banbiết</b>

<b>được thơng tin cộtemployeelD se ta rột XAC d|nh rn cột tén name (cũngnhư</b>

<b>tátca cáccột kháccua bàng>bay nổiCítchkhacemployealD -> Name</b>

<b>8. LƯỢC ĐỔ</b>

<b>Thuảt ngù lươc dó (Schema) hoộclươc đơ cơ sớ dữ hộuđơn giàn cị </b>

<b>MiglìÍH là râutrúrhoAc thiếtkế của cơ sờdử liệu - nóchi là bộkhung của Cflsudư li cư và khơng có bát kỹ dữ bêu nào trongdó.Chúng ta có thê môtàlượcđổcho một báng đơn theo cách sau:</b>

<b>Báng employee<employee!D. name, job.department! D)</b>

<b>9. NHỮNG NGUYÊN LÝ THIẾT KẾ cơ sở DỬ LIỆU</b>

<b>• ơạt kẻ hoach• Suy nghi crươc.</b>

<b>Có lẻ điếu quan trọng nhất khi bạn bÁLđáu bát tay vâo thiếtkế hay</b>

<b>xây dưng mổt</b> <i><b>ca 8Ở dừ liệu</b></i> <b>là cán suy nghi cản thán tâtcà nhùng giminh </b>

<b>sẽ phái làmViêcmô hinh hởa và xâydựng một cơ Ế.iY dừ liệuhoàn toàn cổ </b>

<b>the đúclậpvới cAc hê quan tridừ liêu, thâm chibancồ thế xảy dựng mổhlnh dư liêu mà khơng cán tiếp cặnvói máy tinh Hảysuy nghi nhửngkiếuthõng tmma han rnuốn thẻ hiện vã nhưngloại cáu hôi hay truy vàn mà bansẻ muôn cơsớ dứ héucủabantrá lội Hai cáu hồi chính cu thể nhưaau:</b>

<b>• Thơng tinnảo cân cất gilt kXííMÌỈĨMcvỊ^chúng ta cán cat</b>

<b>giử thốngũn của chúng'! rp iPvĩẽ\!</b>

<b>• Những câu hỏi nao machung u muon </b><i><b>càũaỉí</b></i><b>liêu trả lời sau khiđa códừ liệu?</b>

<b>Khi hátđAu trá lời chonhưng câu hỏinay. bạn cán phái luôn nhớcácquy tác hoat độngcua thè giơi thưc mà minh dang muốn mõ hĩnh hóa, càcmịi liên kèt giứa thựcthê và dừ liệu. Mộc chutrinh thiết ketiêubièudươc xaclậpnhư sau:</b>

<i><b>Xác đinh dứ liệuĩhu Jfi^u dứ liệuChưấn hóa các hàngỉ xảy dung khóa</b></i>

<i><b>-k Tốt ưu hóa /lập lai</b></i>

<b>Chúng ta hàyquay lai vãnđ* quản lý dư liệudanhbạ điénthoại.Rât </b>

<b>dơn gián, tât cả nhưng gibancánlâ tan (Name). Bố diện thoai (Phon#</b>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>Chương1:LAm quen với </b><i><b>cơ </b></i><b>sở dử liệu</b>

<b>Number) và địa chỉ (Address) Bit dáu bàngcáchta sê xáy dưng mộtbảngda liêubao gồm 3 trương th ông tin </b><i><b>tèn. dịa €hỉ</b></i><b> vA sổ'</b><i><b> đtịnthoai</b></i><b> Và’như vây chúng tacócấu trúc sau:</b>

<i><b>Gia</b></i><b> nhưdi khá cu the Tuy nhién.chung ta cần một tiện ích Intén (Name) cóthế sáp xếp theo thứtự,bạn có thây đúngnhưvậykhổng9 Vđmg.đũng vậy nhưng bạn mnsáp xép thứ tựdanhba theo tẻn hay theo họ? Đế trả lờn.cách dơn giảr và dí hiếunhít lÀ Uchtên tổng quát :Name) ra lần)haiphân (hay cột)lầHọ (Initial) va Ténchính«.Last Name)Tương tự nhưcấy cho thơng tinvédin chí Một đ|achichung chungnhưAddresscố thí lã đAdủnhưngtacắn chi tiết hỏathổng tin địa chi đế sau này dề timkiếm,vé ngun tácđìa chi cóthểdược cu thẻ hóa thành:</b>

<b>Cdchtdtnhátdẻ’ xem công việc thiết kế coxd dừ liêu lam vièc như thế nâo ìà kiím tra nổ vđimộtvai dửliệu mầu. dướiđây lft một sổ dịng dữ liệu</b>

<b>mà bụu cóthể hình dung:1 ....-L</b>

<b>H </b>

<b>---oyTApotes100 MogalongDrEtna4992122Both vkxk2/53 AliceLebanon5O5OOI1Mike. R Sưlryon9 Jay Lebanon4393892Barry J Ardorscn</b> <i><b>71</b></i><b> WoMy i?d Hanover2298310</b>

<b>Bâygiờ nếu sáp xếp dư liộu trong bảng lại bạn se dược danh sếchthống Ún sau</b>

<b>Barry J.Anderson71Wally Rd Hanover2298310Beth York____________2/53 Alice Lebanon5O5OOII</b>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>ChươngI: Làm quen vói cơsở dữ liệu</b>

<b>toy ĩ Apples100Meọalong Dr Etna4992122Miko. RSulHvan9 JoyLebanon4Ô93892</b>

<b>Ngay ụptức, ban cố thế tháy xuãit hiên điềurtùnh khôngmỏngmuôn</b>

<b>Ban muốn danh sáchtrong báng đượcsáp Xftp '.heochứ tu abc cùalèn CUỐI</b>

<b>chú khơng phái họđat</b><i><b> ở phía </b></i><b>trước,chinhxác sáp theo tên CÌ phai là:</b>

<b>Barry J Anderson71Wa* Rd Hanover2298310Joy I Apples100Megalong DrEtna4992122w R Sullivan9 Jay Lebanon4Ơ9389?Beth York__________2/53 ASce Lebanon5050011</b>

<b>Chung tagiịiqut như thế nào?Có 2 cách, thú uhât bau vẩncó thè </b>

<b>giữ nguyềnnội dung cùa cõt Name nhưng kin trich nltdư liệu ban SỂ sờdụng một 8Ố hàm xửlýchuỗi đạc bièt dê phan tách tơn vàho.MU đómới</b>

<b>sáp x*p (Cáchnày ban sẽ tiếp cận khichúngla học »ẻ ngổn ngư truy van</b>

<b>dử liêu SQL) Cáchthư hai don giảnhơnlà bạncú thé thiết kế lúcíu trúc </b>

<b>của bểng dừ liệu bàng cách táchcõt tên ra làm 3phin Tfcn (FirstName). Họ < Last Name) và chitiết nùn ’.àtênlốt theo ho(Middle name) Búy giờ là câu trúc bông cua chúngta sè baogồm các cột</b>

<b>Lấn nàynếu sápxếpdanh a(4chtheocột LastName bạn sè có kếtqui</b>

<b>theo thử tư ABC mong muốn;</b>

<b>Anderson<sup>Barry</sup>J71Wally Rd Hanover22983'0ApplesJayT100 Megafong DrEtna4992122Sullivan</b>

<b>R9 JayLebanon4Ô93Ố92YorkBeth2/53 Alice Lebanon5050011</b>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>& ™ Chương 1: [^m quen VƠI cơ sỡ dữ liệu</b>

<b>Chua hết. chúng ta con Cữ thể đi xa hơn nữa Báng dử liệu cóthế thâm </b>

<b>chicơn h.èuq hơn nêu ban biết càchchi tiếtcáu trúc cùa nó sâu han nđa</b>

<b>Ví du. nếuban muốndể dàng liệt kê ra chi nhữngngười nào sóngtại thành </b>

<b>phđ LơiChhordt,thithiỗt kẽ nảy sè khơng giúp dược bạn ngay lức ihớiItrirkhi có sựhồ trợ cũa câchâmxưlychuỗicùacốc hệ quản trị dữ lieu) Tuy</b>

<b>nhiên nếuchiu khổ lốn ít cíngsũc nùa, bancớ thốbỏ gảy cếu trúc cơ 5Ớ dư </b>

<b>h(ucátc6t Address thành2 cột: Street Itẽndường).city (thành phố)nhuđinệu trước dày Báy giờ cảu trúc bảngcũa chùng ta sẻ như sau</b>

<b>AndersonSorry<sub>J</sub>71Wally RaHanover229B3I0Apple</b>

<b>SullivanMice1?.9 JayLebanon4893892YorkBern<sub>2/53 Alice</sub>Lebanon5CSŨ011</b>

<b>Với cáu trúc này.ban cứ thớ sáp xếp M</b><i><b>sở</b></i><b> dữ 11ẬUcùa nunh theo thứ tự abc bâng tên ho hồcsố điên thoai và ban cũng sècứ thế biết, hctruy limra nhanh chóng tất cángười nAo dó sống trong một thânh phố hay con</b>

<b>đươngbất kỹ</b>

<b>Hy vong VI dụtrơn có thể cho banthấy khi tạo ramộ"cơ sớ dữ liệu nào đổdii-uđẩu tiên chúng tacán làm làcó nhừngbưứcphântích vãlãpkế hoach truơc.</b>

<b>Bậncánxem xét cấcthõng tin minh muỏn cất giữ và nhửng cáchthức</b>

<b>mãnunh muốn truy timlậi thơng tinđó.Cơngviệc này khơngdồi hổi banphai tiếp xũc với bít kỳ chương trinh quảntri dữ liệu nàocàNókhống địi hoibạnlàm việc trên máy tính màlàlàmviệc chi VỚI cây bút vàtỡ giây.</b>

<b>Cáchban xáy dưng câu trúc dừ hỳu sô ảnh hưởngđếntát cả nhữngtươngtác sau nay của ban vđi cơ sà dừ hỆu đố Nó cũng </b><i><b>ư</b></i><b> xác d|nhV1ẬC đưathịng tin VÀO cơsỏ dữ liéucódẻ dâng haykhơug, loai bỏdược dù liệu trúnglAp và bàođđm râng buộctoàn ven dú liệu; va sau cũng Việc trichrút thông</b>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<b>Chương I: Lãm quen VỚI cri sơ rtử ìiệu</b>

<b>tin can thiẻt rhotan cứ thó thực hiệnđơu gian hay sè trơ nén phúct^p Mó! câutrue</b> <i><b>M tớ</b></i><b>dưliệu khơng’ tốt sờ gây rốtnhiẻu khókhan khi tan muôn</b>

<b>trichrútlai thõng tin lưu trong đứ đẻ BÙ dụngBang dữ liêu trén cổ thế dược </b>

<b>rAtgiơ trong mót hãng dơn duy nhất (dổi khi thuồtngtì cịn goila database </b>

<b>phang- flat database), nhưng sécó nhỉéu thdãn ỈỢI cũng như tiện dung hơnnêu tan tiếptục phân tích cấu trúcdưlieu vàtốchchúngrathành nhiéubang thay VI một bàng, chúng ta bát đâu tiếp cân vởiloai cơ sd dữliệuquanhệ tư đây Cơ Sỡ dư liộu quan hệ như bạn sê tiếp tucnghiên cúu trongphán dươi day. cộthổ cung cip một sức mạnh vàtinhlinhhoat Vixr bẶctrong </b>

<b>Việc e*t giơ va trích rút thống tin.</b>

<b>Ban háy xem một VI dụ vé cơ sở dù liệu chứacácthõng I inđi A CD ddrti </b>

<b>đây đổ bát đáu</b> <i><b>Cò </b></i><b>mòt khainiệm ve cơ sơ dư liêuquanhệIRelational Database . Kho khan vàtinh khơngdungdân thưởngphátsinh từcơBỚ dứ liệu phảng chi có inột bâng Cơ SỡdừliệuquanhệchinhlA một cừu canh cũngnhuhương di lamthaydổica thê giới!</b>

<b>Khi ban lán dáu tiẻn tổ chức dử liệu, filedư liệu dơn chicổ mòt bângỈỉicáu true dongiãn và dẻ hiéu nhât. Chung được gụilã cơ sôdùliệu file đơn</b>

<b>chiêe (Single-database file hay fill!database I vì chi cómơi bảngdừliêu lưu </b>

<b>trên mộtfile. Khi hủ dung láudài. loaicơ sờ dử lìộu đơn phảng này sẽ gây </b>

<b>khơng itphiên phức viphíìi thực hiện nhiêu thao tác xử lỷ phức tap. Cùngkhông phảicơsớdưliéu đơn sê không làm việc tốt nhưng trongnhiéu </b>

<b>trương hơp. sứdung cơ sơ dữ liệu quan hè tổ chức lam nhiổu bàng srgiúpban giải quyêl nhiều vãndé dẻ dàng hơn Ví dụ. nêu tan tạo ramot file dữ</b>

<b>liẻu dơn dê lưudanh sách cácđìa CDsnhacBan phai dat tảtca cácthơng</b>

<b>tinchitìèt nhưthổng tin ca 81. tác giả vào trongmột bảng Và tiếp theo la </b>

<b>những thong tinnhưtơa (title!củaCD, l£n nhóm nhac, ban nhạc, nơi sảnxuất các ghi chú Khi đổ cấutrúc dửliêu của bancó thí nhưsau:</b>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>£& &Chưmng 1: Làm quen vởì</b> <i><b>C0</b></i> <b>dơLẠu</b>

<b>Vđỉ mil CD CÙA ban nhạcBeatles mA ban sd hữu, ban sẻ phầi nháp</b>

<b>tất CẬ cúc thôngUn trôn’ Diỗunàycánghĩa ban sèphái nháp vào tât cà lèn </b>

<b>CÁC thanh viẻn cùabannhạc Beatles nhiều lẨn (tương i/ng VỜItừngCD) </b>

<b>Quà thitphiền phức!.</b>

<b>Khi tzfỡhơcthAnh nhiêu bảngdơ liệu mội chuyện sèdỉch|u hơn Nếubận sùdung cơ sd dữ hệuquan hỗ và tđ chức câu trúcdừ liệuthànhnhiều bảng, bạncơ thểcất giữ thịng tin chi tiết củaCD(tén. ngây th Ang.các bài háttrongmột bảng CD Table) và cấtgiư thống tinchitiếtvẻ ca 81 riêng</b>

<b>trong bàng Artist khácBảng CD củabện sẻ rỗcếu trúc nhưsau</b>

<b>Sau dó bạn hènkết hai bảng thống qua tén nghẻsi/hoâc lén ban</b>

<b>nhạc (ortĩSt.or-band.name), đố lầlýdo VI sao chúng ta gọicơsởdừ liệu</b>

<b>này làcơsờdù liêu quan hẽ - ban dinh nghla moi quanhệgiúacác bảngdóng vai trị là khốa ngoại (ForeignKey)vanhệp vèotển các ca sỉ cùa từng bannhac chi một lán duy nhat Mỗi khi ban thêm thống tincủa dĩa nhac</b>

<b>Beatles CDvào bộsơutệp của mình, ban chi cannháptánban nhạc Beatles trong cột dữ liêu artist vàcơsớ dơ liệu ạè truy tim chitiếtcủabannhac Beatles trỏng báng Artistgỉúp ban Nókhơng chi giảm thiểu cóng sức nhâpliêu củaban. ma cịn bảo đảm sư tồn vẹn thong tinvA han chí khả nAng </b>

<b>nhệp vào dữ liệu thừacũng nhưkhơng đúng</b>

<b>Đẽ tỉện hơn nữa bạn cóthểtiếp tục tao ra thêm bảng chứadanh mucbài hết Songsnhư cíu trúc sau</b>

<b>eđ.namesong.titte</b>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>Chương1:Lảm quen vđicơ sỏ dữliệuduration</b>

<b>trock.numberwriter</b>

<b>và liên két bàng này vđibâng CD dựa vảo cột cd.name đóng vaitrị khối</b>

<b>ngoai Tốt h<mnua bancú thế dùng CĐ ID lãm khóa chinh (Primary Key)chobảngCDvà CD.1D lam khóa ngoại chobâng Songs thay vì cd.namr, vinếu tinh y ban có thế nhàn ra 2 bộ sưu tậpkhác nhaucố thí cơ2đìa CD</b>

<b>trùng tên. Giờ dãy bill! để thế lưuđay điì thơng tín VẾbộSƯU tip CDcủa</b>

<b>Ban sè họccách thiết kê dữliêu tốthơntrong chương sau khi chúng </b>

<b>ta học vé quytrtnh chuán hóa dữ liệu Trong chươngmá d4u này côlé như </b>

<b>vậy 1Àđu</b>

<b>10. KIỂU Dữ LIỆU</b>

<b>Kiêu dữ liộu (Type) thế hiệntínhchất loai du liêumà ban moỏn lưu. </b>

<b>như dữ liệu la số. chuồi, ngày tháng </b>

<b>-ChnSQL dinh nghía một sơ' kiXu dừ liệuchn và da sỗ cếcnhà cung cáp phán mÊm quántn cơ sà dơ bệu đếu hồ trơ nhữngkiểu dừ liệu này</b>

<b>trong sàn phẩm củanùnh.</b>

<b>10.1. Chuỗi (String) và </b>

<i><b>Bổ</b></i>

<b> (Number)</b>

<b>Nói chung kiểu sỗ dùng biểu diằn sô(nguyân thap phàn, ũén tệ) - </b>

<b>bạn chi cán lunchonmột phạm vi cán thiếtdửlớn đểchưn giá trìtói da có </b>

<b>thểcó cùa thịng tin dang nhámđến la du</b>

<b>Chuỗilàdạng dử hẻu vànbànhay kýtunhư DỘIdung mộtthống tin môtá hay tẻn ho. tựa bAi hátVdichuồi đơn giânbạn chi cánxác dinh độ</b>

<b>dài tỏi da cảncó của nộidung nhậpvào Ví dụ như tèn thi chl dài tốida 20 </b>

<b>ký tự,tựa bài hếtthì khống nên dàihơn</b> <i><b>60</b></i><b> ký tư.</b>

<b>10.2. Kiểu ngày tháng (thời gian) và tiến tộ</b>

<b>Ngàythắngídate/time) là kiếu dứ liêudùngbiểu diẻnngày tháng và </b>

<b>thơi gian (gồm </b><i><b>cá</b></i> <b>giờphútgiảy)Háu hếtcâche quin tn dư li$ư đAu hi trợkiểu ngày tháng thòng nhât theo chuẩnSQL Ví du bancơ thế nhépvào </b>

<b>thơng tin thể hiện ngày sinh cùa nhAỉi Vỉên, ngàynhậphàngvAokho, ngày</b>

<b>két thúc hợp đóng Trongthế giđìthục, bất kỳ thóng tingilưutrừ laidẻu</b>

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<b>i£a 24 Chương1: Làm quynvơicơ</b><i><b>*à</b></i><b> dơliêu</b>

<b>Cô khâ nang hènquan đến mốcthời gian vồ Dgày tháng là kiêu dử liệu rồtcố ích đẻ' ban biếu diểnchúng</b>

<b>Kiều tiến tó thậtra chi là kiẻu sị thảp phAn thơng thườngnhưng địi</b>

<b>hỏi phaicódơ chinh xác caoTrong CÁCchương trinh hỏnquan đến xừ lý sỏ'thập phồnthi công việc làm tronsô dỏx khidàndèn một SỈU</b><i><b>*</b></i> <b>khá lớn. VI dụ </b>

<b>néu kiêudừliệulưu trửtién bạnchigÀm 2 sổthạpphan(001ì.khi sỏ'Liềnthanh tốn lềlẻ ở hang 3 hay 4 sổ ihảp phản <0.0001 chàng hạn> nỗu làm trịnvhbỏđi phin dưcua hai sỏthậpphổn ruổi thìkhi sỏ’ tiến tổng cộngkhá lớnsè khiến ron nd'lầm trònmấLđi rết nhiẻu(như 50.000.000đX 0 0001 -5.000d>.</b>

<b>Chínhvi vậy kiỂu tỉén tê giúpbanthÀ hiệnsơ lưutrư VỚI đô chinh xác rAt </b>

<b>10.3. Các kiểu dữ liệu phức hợp</b>

<b>Cuốicung, trongthế giới thưc cõ nhưng kiểu dưliệu phức hơpnhư sỏ điẻnthoai. điachi,thông tin liên lac, mà sỏthê tin dung Những kiếudưliệunay xuất hiện rất nhiéu trong hàuhếtcúclượcdó cơ sỡ dữ liộu. Thương nhữngmáu thõng tin này đượctó chức truynhãp tư nhiều bangChẨng han</b>

<b>trong mơt hê thỏngthươngmai diện tủ eCommerce.cơ sờdửhộucũng mộtthôug tin liên lạc cd thẻ câ’t giữ và phàn loai khác nhau theo nhổm ngươi dùng, nhà cung cấp. kho hang,hay nha quan trị admin</b>

<b>Thay vi lưu thành tửngbáng riêngđìa chi tương ứng người dung,nhà </b>

<b>rung Cáp, hơẠỡ nhá kho(dẵn đẻn láp lai rất nhiều nhưngcịtdia chỉ trang </b>

<b>tồnbộ cơ sờ dử liệu) như trén. chùngta có thẻ thiếtlãpmộtbang đơn duynhốtchứathơng tinliên lạc và tạo mộtkhoangoại cho bâng.Sau dótháng</b>

<b>tin cùabảngsộ đượccác bâng khác tham chiêu đến thịngqua khoa ngoại </b>

<b>Điíu nay sé tạo nènhailợi ich tức thời:</b>

<b>• Dẻ dàng thay đổi nbơng thơng tinchínhcua quan hè</b>

<b>♦ Dê dàng thay dổi nhưngkiểucảutrúc dừ liộuphức u>p sè xảy </b>

<b>ra trong tương lai</b>

<b>Dơán trươc tập những thuộc Unh haycỏt dừ liều nào (hinhthành néo</b>

<b>cấu t rúc phức hợp) se thay dổitrong tương lai kin thiếtkếcơ sỏ dư liệu đơi </b>

<b>khi lâ cảmộlnghê tht. Cấu trúcđịa chỉ Address cóthé dươc táchra chi</b>

<b>tiếtnhư sauDeportmentCcmpor.yMoiistop</b>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<b>Chương 1: 14»m quen vó> ẹo sớ dữliệu</b>

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<b>26Chương1:Làm quen VỚI cơ BỞ dữ liêuChảng han ban cứ thể’ cô một tó điện thoai như 84-08-8501232-123-7 trong đó 84 là mA quốc gia (Việtnam).08là mA vùng (Thành phỗHCM). 8501232 là sỏ' diện thoại Cơngty, 123 là sơ' phịng kế tốn,và cì cùng 7 1A</b>

<b>sỏ máy ngay bànlàm việc của bạn Ban có thểlưu sơ nàythành một chi </b>

<b>nhưng cung có thếlưusô' này ta ch rơi rathành nhiắu cột.</b>

<b>10.4. Dữ liệu “nhạy cảm"</b>

<b>Bit kỳ dứ liệu “nhay dm*(sensitivedata)nèo lưutrong cơ sờ dữiiệu </b>

<b>đéucán phải được ma hóa. Dừ liệunhạycảm1À nhưng dư liêu mang tínhriêng tưcao. vídụnhư số tài khốn ngầnhàng,số thẻ tindụng,mật màtruy nháp hé thongNgaycả khỉ hệ thong CƯ sỏ dưliêu của ban dưoc xemỈA đámhaocơ chế bao một nhưng bạn cùng n có cơ chế mA hổacho riêngmình Vi dụnổitiếngnhát vé quảnlý loại dưliệu này la hê thôngmãt kháu </b>

<b>CÙAhộdiếuhành Unix. Nộidungmệtkhiuđược lưu ngay trong íilé vầnbánnhưng nội dung dã mỏ hóa khién cho dù cổ. bạn mởfilevồdọcdượcnội </b>

<b>dung nểythicũng khơng hiếu được ý nghía của nó</b>

<b>Có nhiẻucách ma hóa nhưng nhìn chungla có hai hươngchính,mâ </b>

<b>hóa hai chiếu và mồ hõa dữ liệumột ch léo Một sốdừ liêu nhưsốthẻ tin dungcánma hóa theokiểu2 chiẻu tưc 1A có thế khối phục lạ: nồi dung từ </b>

<b>dửliêu mẩ hóa. Mà hổa một chiểu là sừ dungnhừngthuẠttoán khiến dữ liệu </b>

<b>khơngthế giảima trở lại nội dungban đàudược Ví dụ như thong tin vế mAt</b>

<b>khâuthườngđươcmà hóa theokiểu mộc chiêu.</b>

<b>Tơmlai. mồi cột trong bảng dữ liệu sècómơt kiểu dừ liệu néngKiểu</b>

<b>dử liệu định nghlakiếu chổng tin mA cột có rhé cất giừPhAn lóncàccộtcókiểu dữlièu vân bản (text) Các cộtkiổu vãn bản Cố thế cất giữnhưngthõng</b>

<b>Un8Ô, chữ cái, cdcký tự đặcbiột hay thậm chí nội dung đáy dù của một Lài 11ỈU. Nhữngkiểu dữ I1ẬU thịngdụng khác gổm cổ kiểu sơ (cơn goi lÀ number), </b>

<b>tién tệ (mộtdạng kiểu số có độ chính XÀC thẠpphầncao), kiíungàythAng/thời gian, và kiếu ln lý Boolean (cịn gọila kiếư Yea/Nỡ), kiểu</b>

<b>memo (đế cát nội dungvân bén) và kiểu picture hay binary chứa dữ liệu nh| phấn (dữliệu </b><i><b>dạng ư </b></i><b>hóa như hình ảnh )</b>

<b>Khơng phải hộqn trịcơ sđ dữ liệu nào cùng hổ trợ đầy đủ nhữngkiêu dữliặu này Tuy nhiên bốn kiểu câu ưúc dữ liệu dơngiản vAn bản. số. </b>

<b>Boolean và ngày tháng thì hdu như lnln cơ</b>

<b>Kiểu Boolean cịn gọi 1A kiếulịgíc có thểchưa giá trị 0hôẠc 1. hoậccập giá trĩnhưTiWFalse hay Yes/No Kiếu này hưu ích khi bạn mnbiếu</b>

<b>diên càcthơng Un chỉcóhaitrạngthốinhưNam hay Nữ. Được phép hay</b>

<b>Không</b>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<b>Chương I: lAmq ^n vói</b><i><b>cơ</b></i><b>sơ dữ liệu</b>

<b>ng-’</b>

<b>Chú ý. chứngtasư dụng kiếu dữ liệu vAn ban đế biểu diến sỏ diên </b>

<b>thoại iAn mà vùng Tại sao khùng sứ dung kiếu dư liẻu sd? Vđi sỗ điện thoai. cAu trà lời hi4nnhiễu la: sỏ điệnthoaithường chứa nhưng ký tựđạcbiệt như dầu ngỡAc hay dâu nốiV|du: (02) 478203021.Sử dungkiêu dử hệuvànộàũ chúng cacổ thế cho phép lưu những ký tựnây cịn nếudungkiếu sơ' thi </b>

<b>không thế Với trườnghơpma sô vùng, mũcdù thõng Únnáy chi chứa cúc con sổ, nhưng chúng ta cùng khóng xemchúng lề sỏmầ nên lưudạng van</b>

<b>bắn. đơn giảnla VI chứng không dung dẻ demra únhtốn</b>

<b>11. KÍCH THƯỚC CỘT DỬ LIỆU (FIELD SIZE)</b>

<b>Diếu qimn trọng nhất khi dinh kíchthước cho cộtdủ liệu dó là xácdinh phỉim vi đủ lớn đếcóthé cất giử mọi trường hợp xíy ra của thịng tin </b>

<b>Ví dụ như trường tên Name và dia chỉAddress, co thẻ dốn ra tỗn khơng </b>

<b>q 50 kỷ tự cịndia chi cử 100 chữ là tỏi đaTuynhiẽn sècónhữngtrương</b>

<b>hợp thétsư bạn khơng biết chác chần chiểu đà: cột dưliêu bao nhiêu là dửKhi gạp truừng hop này tốt nhất lể hẫy đế kíchthước cột dử liệu bằng vđi </b>

<b>sỗ tỏ'1 đa mAmột hệ quÀn trị dư liệucho phép (thường la 255 hoac 254 kýtụ). Một ư hỉ’ quản tri như SQLServerhay Oracle cịn chophépbộnsừ </b>

<b>dung rầck*Ainhư NVARCHAR hay NTEXTkhơngcán chl dịnhkíchthưdcNội dung lưutru sè dượccđc hộ quâu trị dừ liệu tưđộng tùy chinh</b>

<b>12. TÊN CỘT DỮ LIỆU</b>

<b>Ban se thảy tèn các cộtdử 11ỘU thường dátghép hẻn VÓI nhaunhư </b>

<b>EirstName hay MeinberahipTypeĐAy ỉa điếu nèn làmTai sao khơngviết</b>

<b>thêm khống tráng dếchúng dộ đọc hon?</b>

<b>Mậc dầuhiện nay háu hết CÁCchương trinh quântrị ca sd dừhiu déu </b>

<b>cho phép bạn tao ra ten trường hay cột dữ liệu đươc phép cổ khoảng tráng </b>

<b>nhưngcồn rất nhiAu thư viện cùng nhưngổn ngủlap trinh chưahỏtrợ vièc </b>

<b>truy xuât Un cốt cổ khoảng tráng Do vậy tót nhất lâ dưng nên dùng trừ khibanbiếtrỗminh sẻsử dụng thư viện truy xuất hồ trơoơ chí dật tAn trườngCổ khoắng trAng.</b>

<b>13. ĐỊNH DẠNG VÀ KIEM TRA TÍNH HỘP lệCỦA DỮ LIỆU</b>

<b>Mị: sổdinh dang và quy tác kiếm ưa dữ liệu đưực cốc hệ quântrị ãp</b>

<b>dốt mộc dinh trên kiẻu dủ liệuma ban chon Ví dụ kiéu số thề khỏng điS?c</b>

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<b>2ft Chương li IJun Ijuvilvớicơ </b><i><b>tị</b></i><b>dữ liệu</b>

<b>có nhửng ký lự chừcắi, chuỗ) nhập vào khổng vượt quđ kích thướcdinh </b>

<b>trước BÀngcâchnày dừ liệu của bạnđâmhảo tính đúngđán khi đưa vâo lưutrữ.Có nhiêu clip độ kiếmưa dữ liệu, một sỗ hệ quàntricho phép ban tạo ckcquy tác kiêm tra (Rule> ngay khi dưliệu dưavAo Một «ơ'ứng dụngcứthètự kiêm tra va báo đâm dữ liệu dóng khn dangtrước khi dưa vàolưutrử trong các bang cùa Cỡ sơ dư liệu.</b>

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<b>Chương2: Chn hóa co 3Ĩ dù liéu28AS)</b>

<i><b>Chương 2:</b></i>

<b>CHUẨN HÓA Cơ SỞ DỬ LIỆU</b>

<i><b>Cac vándê chinh aẽ (tược dểcáp:</b></i>

<i><b>< Chuán hóa dạng 2 1SNFI</b></i>

<b>Một trong nhưngnhan tỏ quantrọng nhât. trong thietkếcơ sđdử liệu lã VIộcđinhnghĩaNỗu cđu trúccác bảng cua bạn không được thiét lápđúng</b>

<b>hơộc hợplý thicổthể khiếnban nhức đáu khi xử lýva truy vấn dừ liệu từ</b>

<b>các bang Khi hièu rô vé các mốiquan hệdư liệuvồ quy tácchuỉn hỏa dữliệu, bạn sêthiết kế dừ liệu tốt hơn. tạo cơsỏ cho viec chuẩn bị vố pháttriềuứng dụng tiẻp theo sau này</b>

<b>Một cơ sở dửliệu dươc thiếtkế rát lã cơ sớ dừ liệu han chẽ tơì đaviệcdư rhưa dừ lieu nhưngvản khơng làm mât đi bít kỹdử liệu nơơCo nghía</b>

<b>la chúng ta sưdungkhong gianlưu trừ trongcơsờ dư liêu ít nhátnhưngvànbaodám tâtcãmồi liên kèt cung VƠI nội đungdữ liệuHơn nửa. chufin hốtì </b>

<b>lươcđó cơ 80 dư liêu sẻ tránh đươcnhữngdi thường trong thao tác chèn, cảp </b>

<b>nhỉl. ho*c xóa dữ liệu sau nàyvàdođó bảodám tinh tồn vợn trangcơ sổ </b>

<b>dư lieu.</b>

<b>Chodị ban làm việcvới hê quan tri cơsờ dữ liệunào đi chàng nừa;t MySQL.SQL Server. Access. OracleI. ban déu cán phải biết rộphương </b>

<b>pháp chuàn hóacácbângt rong hệthống cơ sở dừliệu quan hệ của mình. Nósè giúpbạn cổdươc mơtcơ sà dử lieu dé hiẻu. dê truy nháp va mó rơnghơn Trong mộtsơ trường hop. aocơnlảm tơng tócdơ cua ứngdungkhítruy xuất</b>

<b>cơ sơ dữ liêu</b>

<b>Vé co bản.các quy tAcchuAn hóa buộc loại bó cácdư thừadữ liệuvà </b>

<b>nhưng quanhê phy thuộc máu thuân nhau giửa cac báng.Trongvi dụ sau</b>

<b>chungla sê khảosátcácbưức chuẩn hóa đẽ’tạo ra một cơsớdữ liệu hiộu quầvồ đáy dùchửc nàng</b>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<i><b>ẾỀễ</b></i>

<b> 30 Chương 2: Chuẩnhóacơ sà dừ liệuChúng tơi sè trinhhâychitiết nhửng kiếu quan hệ mA CÁU truedữ liệu của bạn có thíSŨ dung</b>

<b>1. PHỤ THUỘC HÀM</b>

<b>Trưúc khi chúng ta bước vảoq trình chuẩnhóa.bạn cần biẻtrằng chuđn hơa khang phaila dâc thù VƠI mốtkiếncơ lờ dif liệu nAo rổ Nhưngquy liechuấu Macdthế áp dụng chợ hâu hétcác hộ chốngquántri co sờ </b>

<b>dưMu như MySQL.SQL ServerOracle. Access</b>

<b>Trưdc hết. chúng ta quay lậi một chút ví phu thuộc hâm đAnêu</b><i><b> ở</b></i>

<b>chương trươc, đây la yếu tốquan trọng nhát trông quá trinh xử lỹchuẩn hốa</b>

<b>Thuâtngũ “phụ thuộc hàm"tuy khổ hiếu nhưng nó lại dùng diên dat cho ỷ</b>

<b>tướng hếtsưc đơn giần</b>

<b>dưoi dây:</b>

<b>Dế minh họa, bạn hâyxemmộtbáng dư liệumẮu</b>

<b>Trong đó Name ỉà tèn nhân viên.Pay_Classla loại xác định gĩA </b>

<b>Chanh tơAn vồRatelàtỉgiá crtn thanhtốn</b>

<b>Định nghía: eột A phu thuộc hàm VAO cột B.nếu cómột giá tn bấtkỹ</b>

<b>của A ta sè xác định ra gỉátri duy nhất khác của cột B.</b>

<b>Trong vi dụ trên, trưởng Ratela phu thuôc hàm vào trường Pay_Class</b>

<b>Nối cách khác trường Pay _Classxác đ|uhRate ĐỂ</b><i><b>KÁC</b></i><b>định phụ thuộc hàm. bạn</b><i><b>cồ</b></i> <b>thế nghi dơn gian như sau cho một giá tr| củacột A. háy xác định già tri dơnduy nhíttươngứng của cộtB? NÁUB suy ra từA, ta nốiAIAphuthuộchàm xácđịnh tì. VỚIbangdừ liệu trén chúng ta thèm vàocác cột như</b>

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<b>Chương 2: Chudnhỏa cơ sd dử hậu<sup>31&’</sup></b>

<b>Trong đổ Sales_K*pN umber làmồ số nhân viên banhang. </b>

<b>Soc.Sec.no. là sá bân hiểm an ninh xa hội</b><i><b> (hay lé CMND) </b></i><b>cùa nhân vita </b>

<b>bấn hâng Bây giỡ.hây xem bảngtréudẻ tim ra một sổ phuthuộchamkhác.Ban đa biết Pay.Class xác đinh Rate('hung ta củng có thể nóirângSales.Rep Numberxác dinh cộtName. Một masốSalea_Rcp_Number cotương ứng duy nhát một gia trị Name duy nhất Nóhồn tồn phù hợp VỚIdinh nghía củaphụ thuộc hàm Tuv nhién cột Name côthe’ dũng XÁC Ạnh </b>

<b>dược giá tn của cột náo khac hay khống7 Thoạt nhỈD ban có thế nốilà có.</b>

<b>tuynhiển sự thầt1Akhơng. Thưởng, ban có thénơi vđi tên Ward sè chi radưoc một giA tn tương ứng của cột Sale«_Rep_Number. tuy nhiênnêu cómột Dgùừỉkhầctrùngtta Ward ln thi sao? Khi do cùng một tênWard </b>

<b>ban xAc dinh hai giâ trị Sales^Rrp.N umber khacnhau Vá do đố Namekhơng cị chứcVI Angdùng xác dinh dược cộtnAo CỂ.</b>

<b>2. KHÓA VÀ PHỤ THUỘC HÀM</b>

<b>Ban đâ biêtphuthuộchàmlà gi. chúngtacó thế timhiAithém chi</b>

<b>tiết vé khơa (Keys) đađươc giới thiệu quaờchươngtrước. Nêu ban da từng</b>

<b>lâm việc VỘI cácbịcơ sị dừ liệu, át hấn ban có lè dãbiết dến thuât ngữ khóa</b>

<b>chinh (Primary Key). Thế nhưng, hancổ thếđinh nghíaPrimary Key làgi khơng</b>

<b>Dinh nghĩaCột A la khốa chinh cho bàng T néu</b>

<b>cùngcó</b><i><b> Thuộc tinh 1</b></i>

<b>Dẻ hiếu, nếu tất cả các trương haycộttrong môt bủng cơ sớ dử liệu </b>

<b>phu thuộc vaomátvàch< một cột (hay tap hợp còt i A trongbàng,thi A</b>

<b>chinh|A khóa cùa bảng</b>

<b>Đoi</b><i><b> khi Thuộctinh2</b></i><b> trong dinh nghíatrên bị vi pham. vA tốn tậi hai cột đểucổkhà nâng làm ứng cử viênchokhơa chinh. Những khóa nàyđưoc</b>

<b>goilà khoa ứng viên hay Candidates KeyTừnhững khóa ưng viểnnAy, ta</b>

<b>chọnra một khóa lam khóa chính (Primary Key), cái cơnlạigọilakhóa thay thế (Alternate Key) Vỉ du. trong cung báng dừ liệu ồtrẽn</b>

<b>Name Sales, ữop. NumberPay Class Rote</b>

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

Èií>

<b>Chương 2: Chuânhóa Cữ sở dư liệu</b>

<b>Khóachinh cùa chung ta trong trườnghợpnay làmãsố nhân viẻn han</b>

<b>hàng SalesRop.Number. nổ phũ hợpvới định nghía cùainột khóa chinh Tát câ CAC cộtkháctrong báng đẻu phụ thc vâo cộtSales Rep-Number,khơng gi phái bàD câi</b>

<b>Bấy giờ.đi xathỏmmotbước nừa giả thiếtrằng chung ta cố thêm sốan ninh xâ hội<hay sốCMND) cùa nhân viên</b>

<b>NameSales Rep .Number Pay.ClassRateSoc Sec. no.</b>

<b>GiđđÁy bạncốhai khóa ứng viAn. Sâlea_Hep_ Number vàSỡ Sec no</b>

<b>v$y.chúngu phải quyét đinhlàsử dung cột náotrong hoi cột khóa ứngviên làm khốachinh, vìcáhai đểuxácđịnh tính duynhát?Tốtnhất la chọn Sales _Rep_Nunib<?r làm khớa chinhvinhiêulý do mà ban sõ thíy hiến</b>

<b>nhiêntrong cácbước vỉ chuẩn hóa mA chúng ta bát đáutiếp cận dưới đây</b>

<b>3. CÁC DẠNG CHUẨN HÓA DỬ LIỆU</b>

<b>Giásử chúng ta muốn tạo ra một bảng lưư thõng tin người dùng,và </b>

<b>muôn cất giư nhưng thõng tin như Name. Company.CompanyAddress. UBLi một sô địa chi liên lac khrt.’</b>

<i><b>ƯRLỉa địachi Web trên Internet, vi (tụ nhu http</b></i><b> 7 </b><i><b>ỉ UIUHVmycompany.com. </b></i>

<b>ịminA, </b><i><b>một công tycú thề sùdụng địa chỉ Webdìqng bá htnh ánhcơng tỵ</b></i>

<b>Ban cố thé bát đâubàng việc định nghĩa một câu trúc bảng như sau</b>

<b>Table- users</b>

<b>name company companyaddress urtlUrt2JoeA8CIWork Laneabc.com xyz.comJfll XY7I JobStreetabc.comxyz.com</b>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

<b>Chương2:Chuẩn hóa cơ sị dừ liệu33a*Chúng ta nói báng nảy thưịcdạngdẨu tiên hay dạng 0(ZeroForm) vỉ nóchưấpdungquy tác chuẩn hóa não cả. Lưu</b><i><b>ý urlì,arỉ2</b></i><b> làcác địa chỉ</b>

<b>Website</b><i><b>có</b></i><b>thể có cuamột cơng tyhay c4 nhân -Nẻu người dùng có thèmmột địa chi uri3 nửa thi sao? Bạn tao một cột ur!3 nửa chip Va nếu nhu CÀUcua ngườidũngmuốn tao</b><i><b>n</b></i><b>đia chỉ </b><i><b>url</b></i><b> khắc thì có lè bạn phai liêntục chinh sủa bàng dư liêucúaminh dểchémcộtmđi Chưa kể trong cAc chương trinh</b>

<b>xớlý bộn cũng phài thay đõìmã cứngnhíc đế truy xt đến cáccột Rơ ràng </b>

<b>- chúng ta mntạomột hé thông các bảng cổthé mđ rộng ra theo những u </b>

<b>CÂU pháttriínmđi Chúngta hãy xem quy tẤcchuẩnhóa dạng 1(First NormalForm) va áp dung quy tácnày cho bảng dơli(u trên như thế nào</b>

<b>3.1. Chuẩn hóa dang 1 (1NF)</b>

<b>Dạngchuản hứa 1, đổi khi cịngọila 1NF theo tdn viếttát của nó</b>

<b>(First Normal Form), yẻu</b><i><b> cáu thuộc tinh hoácgiá trị cộtphdiỉ à dơnnguyện </b></i>

<b>tính phaichứamột giá trị đơn duy nhát, khơngđược chứa một tip giá tri hay tập hợp câc giátntư nhưng dong dư liệu cuabảng khac</b>

<i><b>Quỵ tác dang chuđnhóa1:</b></i>

<b>1 Loạibổnhưngnhổmdơ liệu lạp lạitrong từng bâng nông lẻ.2 Tạoramột bàng riêngbiửt cho tập dử liẻu hènhẻ với nhau.3 Xác dinh khoa chinh chobảng</b>

<b>Xét laibàng dửliậu trước dây.quy tác chuăn hóa 1 bịVIphạm với hai thuộc tính uri 1 vâur!2 vi như bạn thảy chủng cốnhửngnhómdữliệulặp lại </b>

<b>chocũng một UnJoe Khi ápdungcácquy tác chuản hóa dang 1. ban fiè có dược báng biếnđơi sau</b>

<b>useridnamecompanycompany.addruss</b> <small>Uri</small>

<b>1JoeABC1 Work Laneobc.com1JoeABC1 Wcxk tanoxyz.com2JillXYZ1 Joo Shootatxr.com</b>

<b>2JillXYZ1Job Streetxyz.com</b>

<b>ở đây userIDlàkhỏachính,khổa này dược thiết lẠp lâmâsố duy</b>

<b>nhát danh cho tưng nhân viên. urllVAurl2 dượcđưavểchí cịn mộtcộtưrl.</b>

<b>Bây giờbáng của chúng ta dươc goilàtuảntheo dạng chuấn hốa l Chúng </b>

<b>ta dagiải quyếtvấn dẻ trũng lắp giữa</b><i><b>các cột</b></i><b> url khỉmỏrộng Tuy nhiên,hảy xem một vấn dêkhácchúng ta đà tựminh làm rác rồi thêm.</b>

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

<b>cá 34 Chương 2: Chuánhóa</b><i><b>cơ sà</b></i><b>dữ liệuMỖI khi nhâp vàomộtmẩu ũn hay dịng mới cho mót url cùa người</b>

<b>dùng khểc vào bàngUsers,chúng ta tạo nénsưtrùng lốp tên rỗng ty</b>

<b>Company vft tền người dùng Name. Khi danh sốch lưu trư lớndânlên. dửliệungàycàng trờ nên dư thừavồ hày hinhdung nêu chúng tamuốn đổi tên cho Joe hayUnCompany nơi JoelỉUn việc ta phải đòi hailánNếusòdòng</b>

<b>trùngláplớnhơnthiviệc cập nhật dữ liệu thiếu có thể gây ra ván dỗ nghiêmtrọngvẻtính khơng dùng dáncủadừ liệu. Chúng tahay ap dụng thtm một quy tác chuẩnhóa dạng2</b>

<b>3.2. Chuẩn hóa (lạng 2 (2NF)</b>

<b>Mộtlượcđổđược xem là tuân theo dạng chuẩn hóathửhai (2NF) nếu tấtcể các thuộc tinh hay cộtcủa nổ tkhơng nàm trong bộ phàn của khóachỉnh)hồn toàn phu thuộc hàm vồo khốa chinh,và lược đồdâ tu*ntheo dang chuẩn hoa 1trước đố Đ1A1 nAy nghía là gp</b>

<b>N</b>

<b>ổcó nghía ràng mỏithuộc tính (hay cột) khịng khóa đéu phai làphụthuôc hàm vảotất cà các </b>

<b>bộ phân của khôa Nếu khoa chinh được tao ra bôi nhiÀu cột. thi mồi cột</b>

<b>kháctrong bảng phài phuthuộcvàosự kết hợpcúa những cột cúa khóa chínhQuy tác ơđaylà:</b>

<b>1 Tao rabảng nêog biệt cho cấc tập hợp giá tritrùng láp nhiểu mâu</b>

<b>tin trên bảng chinh</b>

<b>2 . Liền hệ bAng chínhvớibangnày bằng một khóa ngoai</b>

<b>Theo chuẩn hóa dang 2. chúng ta tâchcác giatrị url thành mộtbảngriêng biột sao cho cáthưthímnhiều địa chi uri khácmà khống trùngláp dư liệu Chúng tacùng sè sứ dụng giátn khoa chinhrua bảng han ddu dố</b>

<b>hènkétvái các cột khóa ngoại của bảng mái</b>

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

<b>Chưởng 2; C-huắnhổa </b><i><b>casò</b></i><b> dử liệu________________________ 35B*Chúng ta đâ tạo xong hai bàng nẻng biệtvổ khóa chínhtrong hảng</b>

<b>Users lausrrld.ket nốitới khóa ngoaitrong bảng urls, làrelUserld.Dang nây d*tét hơn Ban co thểthêm bao nhiéu thông un Uri eho UserID vào </b>

<b>bang Urls vân khơng có dử liệu nào dược thêm vào bảng Users vầ dọ đổ</b>

<b>.th^m Url mới cho User không làmtrung up dữ liệu</b>

<b>The nhưng diéu gi xây ra nếu ta muôn thẻmmột nhânviên(hoệc200.nhâu viên) mội của côug ty ABC vào bâng Users?</b>

<b>Như bạn thấymối nhân vièn thèm vàose làm trung lâpliu đìa chivâ </b>

<b>tồn cịng ty Chúng ta cAn chn hóa dửliệu theo một dang thứ 3 đế khácphúcđiếu này</b>

<b>3.3. Chuẩn hóa dạng 3 (3NF)</b>

<b>Dạng này ucầuIoạibổCÀCcộtkhơngphụ thuộc vồokhóa Chung ca </b>

<b>phai loai bo tát cảcacphán phu thuộctác câu. vàlượcđốphải à đang chuẩn </b>

<b>hốa thử hai trước dó Vậy phu thuộcbẩc cáu làgi?Hay lem ỉươeđổ MU'ưscrs</b><i><b> tuscrỊDnamt company company address)</b></i>

<b>Lược dó này chửacác phụ thuộc hàm sau</b>

<i><b>company —> company ^address</b></i>

<b>Khoachínhlà userID, và tảt ca các cột khốc cùa bàng đẻu hồntồnphụ thuộc vào khóa chinh.diếunay de thâyvì khóa chính chi cổmịt cộtTuy nhiên,ban cơ thế thây:</b>

<i><b>userID—> name</b></i>

<i><b>userID — >company</b></i>

<b>use riD </b><i><b>—>company address</b></i>

<b>và do:</b>

<i><b>company —>company ^address</b></i>

<b>nen bancố thế bắt CÂU như sau</b>

<b>phu thuộcham</b><i><b>userID—> company</b></i><b>được gọilã phuthuộcham bâc cáu vi nócổ thí dùng làm bước trung gian đểUmra phụ thuộc</b> <i><b>company —> </b></i>

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<b>E 3a Chương 2: Chuẩnhóa co sớ dữ liêu</b>

<b>Đểchuyểnvế dạng chuixi háa thử ba.chúngLacán loai bó phan phuthuộcbáccáu này Trường rén Company và đia chỉ còngty Company.Adrreas </b>

<b>cua chúng ta không hận quan Ri đỗn Ưserld. vi vây chúng cản phải cú một bộkhóa Companyld khác. Các bảng dược tách ra như sau</b>

1

<b>ABC1 Worktone</b>

<b>BAygiở chúng tadăcókhóa chinhCompanyld chobang Companies,khóa này sề lièn kết vơi khóa ngoaicung WnCompanylD trong bàngUsers.</b>

<b>Gtừ đẫy bạn cổthếchèn thêm20<Ị người dùng inới vào bíinR Users màchi</b>

<b>cánchén tên công ly “ABC vào bàng Companies một lĂn. Bâng Usersvà </b>

<b>Urls cùa chúngta có thímỏrộngthêmbaonhiêu mđu tincũng được má </b>

<b>khống gây radư thừa dử hậuhoặc lầm phát sinh vấn dí khi cậpnhậtthơng</b>

<b>tinvế cơng ty.</b>

<b>Da số chùng ta đỉudưng laiịdang chuắnhđathư ba nây và nó hẲu như thích hợp VỚI hấu hết các mơ hình ứug dụngquản lý.Nhưng hãy xem lại dử liêu luutrong bảng Ưrls. ban có phát hiện ra khả nâng dửliệu t»i </b>

<b>trũng IẨp haykhổng’Nèu càhai ngườiJoevàJill đẻu thích thamchiếudếncúng mơt địa chi Ưri (abc com) thisao?</b>

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

<b>Chưởng 2: Chuãn hờa ca</b><i><b>sớ</b></i><b> dừ liệu37 iÊâi</b>

<b>ĐẬRĨãiquyếtvândênày chùn- to cÁn đến một dạng chiiÃn thứ 4</b>

<b>(4NF). Tuynhiên dangchuàn này liènquan dẻn một quanhệ khác, đở lã quan hộ nhiAu-nhiổu(many-many)</b>

<b>3.4. Quan hộ dữ liệu</b>

<b>Truớckhichúng ta dinh nghĩa và tiếp cận cách chuấnhoa thư 4 hồyxemlai baloai quan hè dữ liều cơ bàn:một mộc (one-one), một-uhiều(one-manyhay dơikin cịn gọilà master/det-ail), vànhiểu-nhiẻu(many-many).Bạn hâyxemlạibảng người dùng Userstrongvi du dung 2JillXYZ1 JobStreet□be com2JilXY21 Job Streetxyzcom</b>

<b>Hãy hĩnh dung giả sử chúng tata ch cột url ra một bảng riêng biệt. </b>

<b>MỊI khi nhẠp vao một dịng mớiưougbùng người dùng Userschúng ta lainhập một dòng thống tin tương ứng url vào báng urls.Khi dó bancó mối</b>

<b>quanhệ</b><i><b>mỏt mật: </b></i><b>mồihàng trong bang Users có chínhxác một dịngtươngứng trong bàng urls</b>

<b>Bãygiờ hãy xembângtrongvidu cùa dang chuẩn hóa thư 2. Bàng </b>

<b>cùa chững ta cho phép mõt người dũngcơ thế có nhiều địa chi url kết hợp</b>

<b>company companyaddress</b>

<b>ABCI Work lane </b>

<b>-XYZ I JobStreet</b>

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

<b>Chương 2: Chuân hoa Msơdứ liệu</b>

<b>nhu ban tháy UserID 1 cồthêcó 2 dia chírdUaerlD tương ưng Đay ta mỏi</b>

<b>quan hộ một - nhiêu,dạng chung và thường sữdụng nhít.D6i khidangnày</b>

<b>cùngoilà master detail lcha-com vìmỏt dịng thống Ún cùa bảng nàyliẻn </b>

<b>hệ VƠI nhiều dòng thỏng tincủa bảng khác như kiếuquan hẻ một cha cđ</b>

<b>nhiẻu con.</b>

<b>M<5i quan hộ </b><i><b>nhiẻunhtéu</b></i><b>(many-many) cóphán phức tập hơn Chúỳ trong vi dụdạng chuán hôa thư 3 trưđcđảy. chúng ta cỗ một ngươidùng liên quan đén nhiêu ưrl» Nhu dădícơp. chúngla muốn thay dối cấutrúc dí chophép nhiéu ngươi dùng được sứdung hay liftn kết đếnnhiều url khácnhau, </b>

<b>đây chinh)â lúc chúngta mn tạo mót mốìquan hê nhiéu -nhiều.</b>

<b>Háy xem diếu chung ta muôn thựchiện trẻn câutrúc bàng trước khiđi vào chi (lết:</b>

<b>componylD company companyaddress</b>

<b>ABC 1 WorkLane</b>

<b>2 XYZ 1 JobStreet</b>

</div>

×