Bài giảng: Con người chính trị - TS Bùi Việt Hươngcuonganh247
Kết cấu của chuyên đề gồm:
1. Cách tiếp cận nghiên cứu con người chính trị
2. Lược sử Đông Tây về con người chính trị
3. Con người chính trị trong thế giới hiện đại
Download luận văn thạc sĩ với đề tài: Xây dựng hệ thống chính trị cơ sở vững mạnh trên địa bàn tỉnh Tây Ninh hiện nay, cho các bạn làm luận văn tham khảo
This internship report summarizes Robin Corral's internship at TSO UK, a subsidiary of the TSO Group specializing in railway infrastructure construction and maintenance. During the internship, Robin helped set up TSO UK's integrated management system and managed material deliveries for catenary renovation projects on the UK railway network. Robin gained experience in project management, learned about TSO's operations and certifications, and immersed himself in the multicultural work environment in London. The internship provided valuable professional and personal development for Robin's studies.
Bài giảng: Con người chính trị - TS Bùi Việt Hươngcuonganh247
Kết cấu của chuyên đề gồm:
1. Cách tiếp cận nghiên cứu con người chính trị
2. Lược sử Đông Tây về con người chính trị
3. Con người chính trị trong thế giới hiện đại
Download luận văn thạc sĩ với đề tài: Xây dựng hệ thống chính trị cơ sở vững mạnh trên địa bàn tỉnh Tây Ninh hiện nay, cho các bạn làm luận văn tham khảo
This internship report summarizes Robin Corral's internship at TSO UK, a subsidiary of the TSO Group specializing in railway infrastructure construction and maintenance. During the internship, Robin helped set up TSO UK's integrated management system and managed material deliveries for catenary renovation projects on the UK railway network. Robin gained experience in project management, learned about TSO's operations and certifications, and immersed himself in the multicultural work environment in London. The internship provided valuable professional and personal development for Robin's studies.
This thesis analyzes the narratives presented by the Syrian state news agency SANA and President Bashar al-Assad regarding Syria's ongoing civil war. It examines four recurring themes in SANA's coverage: 1) Syria as a victim of foreign-backed terrorism, 2) the fight against terrorism and hegemony, 3) cohesion between Syria's population, military and leader against terrorism, and 4) the role of international law and resolutions in resolving the conflict. The analysis shows how SANA frames these narratives to position the regime favorably and delegitimize the opposition. A comparative analysis finds that Assad's rhetoric is generally aligned with SANA's narratives. The thesis aims to better understand the everyday expressions of ideology and
This document is a CV for Ibrahim Salah Ibrahim Alhag, an electrical and electronic engineer from Sudan. It outlines his personal details, educational background which includes a BSc in electronic engineering, professional experience including his current role as an electrical engineer at Petro-energy E&P Co. Ltd Sudan, and skills such as familiarity with Windows, Microsoft Office, and good communication skills. It also lists his training courses and certifications in areas like electrical equipment maintenance, firefighting, and safety.
This document provides a summary of Yasir Mustafa Ishag's work experience and qualifications. He currently works as an Electronics and Instrumentation Engineer at Kenana Sugar Company Ltd in Sudan, where his responsibilities include maintaining electronic and instrument equipment, developing maintenance schedules, and ensuring adequate stock levels. Previously, he earned a B.Sc. degree in Electronics Engineering from The Future University in Sudan and took short courses in nanotechnology from the University of Malaysia. He is a member of the Sudanese Engineering Council and has skills in technical maintenance, communication, team leadership, and learning new concepts quickly.
- China's economic growth eased to 7.4% in 2014 due to slowing investment and consumption growth. Inflation also slowed to 2.0% due to falling real estate and commodity prices.
- The current account surplus rose to 2.1% of GDP in 2014 as lower commodity prices reduced imports more than weak exports reduced the surplus.
- Looking ahead, China is expected to continue shifting towards a more consumer-led economy, with growth slowing gradually to around 6.0% by 2017 as investment declines and consumption increases. Inflation is projected to remain low in the near term.
Tabreed, an Abu Dhabi chilled water company, reported a 15% rise in profits for 2013 despite a 2% fall in revenues. Profits from its core chilled water business increased by 6%. The company increased its total connected capacity and secured new connections in the UAE and GCC countries. Utilities companies such as Tabreed are expected to benefit from increasing real estate and infrastructure projects in Dubai in preparation for Expo 2020.
The document is a resume for Mohammed Hussein Kanuga, an Indian national living in the UAE with a UAE residence visa. It provides his personal details including name, nationality, date of birth and contact information. It then lists his qualifications including a BSc in Business Administration and an Advanced Diploma in Interior Designing. It also outlines his work experience in customer service and store keeping roles at Auto Craft Trading LLC, as a data entry operator and customer service executive at DU, and as a data entry operator at Mashreq Bank in Dubai.
Yousif Abdelmalik is applying for a position with 9 years of experience as a superintendent engineer and operation and maintenance experience in power plants. He has a Bachelor's degree in Mechanical Engineering and has experience managing staff and projects related to power plants, pump stations, and diesel generators. He is looking for a suitable position that utilizes his skills in plant operations, maintenance, and project management.
An Empirical Analysis of Attributes Influencing... Shirin - Abdulaziz -Chris ...Shirin Avazxanovna
This document presents a study that uses the Analytic Hierarchy Process (AHP) to analyze attributes influencing university student customers' bank selection in Dubai. It reviews literature on factors studied in other bank selection studies. The study aims to rank attributes influencing student customers' preferences and rank banks under different attributes. It describes applying AHP, a multi-attribute decision making model, to structure the bank selection problem with attributes and banks as alternatives. The attributes examined are friendliness of staff, proximity of location/ATM, recommendations, service charges, service quality, social media presence, convenience, and reputation.
The document provides an economic insight into the UAE for 2013. It summarizes that real GDP growth was the strongest since 2006 at 4.4% in 2012, driven by expansion in the oil and gas sector and a recovery in the non-oil sector. Private consumption and investment growth were particularly strong. The fiscal surplus is estimated to have increased to 5.9% of GDP in 2012 due to expenditure consolidation. GDP growth is projected to slow slightly to 4.0% in 2013 and 3.8% in 2014 as oil production growth declines but the non-oil sector continues expanding.
DIRTA JAYA SURVEY
Alamat: Jl.Pos Pengumben No 52 jakarta Barat
Contact : andyJaya
Phone:021-93404818
XL ; 087876262648
Simpati:082123568182
email : andyjayasurvey@yahoo.co.id
website :http://www.dirtajayasurvey.com
adalah perusahaan yang bergerak di bidang Sales , service kami menyediakan alat-alat Survey keperluan Pertambangan dan Konstruksi.
* Kami hadir untuk melayani pelanggan dalam bidang
* Pertambangan
* Konstruksi
* Telekomunikasi
* Kehutanan
@DIRTA JAYA SURVEY
Alat survey Total Station Topcon:
Total Station Topcon GTS 102N,
Total Station Topcon GTS 255N,
Total Station Topcon ES 101
Total Station Topcon ES 102
Total Station Topcon ES 103
Total Station Topcon ES 105
Total Station Topcon OS 101
Total Station Topcon OS 102
Total Station Topcon OS 103
Total Station Topcon OS 105
@ DIRTA JAYA SURVEY
Alat Survey Total Station Sokkia:
Total Station Sokkia Set FX 101
Total Station Sokkia Set FX 102
Total Station Sokkia Set FX 103
Total Station Sokkia Set FX 105
Total Station Sokkia CX 101 ,
Total Station Sokkia CX 102,
Total Station Sokkia CX 103,
Total Station Sokkia CX 105,
Total Station Sokkia CX 107,
@ DIRTA JAYA SURVEY
Alat Survey Total Station Nikon:
Total Station Nikon DTM 322,
Total Station Nikon DTM 652,
Total Station Nikon NPL 632,
Total Station Nikon Nivo 2M,
Total Station Nikon Nivo 3M,
Total Station Nikon Nivo 5M,
Total Station Nikon Nivo 2C,
Total Station Nikon Nivo 3C,
Total Station Nikon Nivo 5c,
@DIRTA JAYA SURVEY
Alat Survey Digital Theodolite Topcon :
Theodolite Digital Topcon DT 209,
Theodolite Digital Topcon DT 207,
Theodolite Digital Topcon DT 205,
Theodolite Digital Topcon DT 209L,
Theodolite Digital Topcon DT 207L,
Theodolite Digital Topcon DT 205L,
@ DIRTA JAYA SURVEY
Alat Survey Theodolite Digital Sokkia
Theodolite Digital Sokkia DT 740,
@ DIRTA JAYA SURVEY
Alat Survey Theodolite Digital Nikon
Theodolite Digital Nikon NE 100, 10 detik,
Theodolite Digital Nikon NE 101, 7 detik,
Theodolite Digital Nikon NE 102, 5 detik,
Theodolite Digital Nikon NE 103, 5 detik,
@DIRTA JAYA SURVEY
Theodolite Digital Minds CDT05,
Theodolite Digital South ET02,
Theodolite Digital South ET05,
Theodolite Digital Horizon ET1002,
Theodolite Digital Horizon ET1005,
@ DIRTA JAYA SURVEY
Alat Survey Waterpass/ Automatic Level Topcon:
Automatic Level Topcon ATB-2, 0.7mm,
Automatic Level Topcon ATB-3, 1.5mm,
Automatic Level Topcon ATB-4, 2.0mm,
@ DIRTA JAYA SURVEY
Alat Survey Waterpass/ Automatic Level Sokkia
Automatic Level Sokkia B40, 2.0mm,
Automatic Level Sokkia B20, 0.7mm,
Automatic Level Sokkia B30-35, 1.5mm,
@ DIRTA JAYA SURVEY
Alat Survey Waterpass / Automatic Level Nikon
Automatic Level Nikon AC-2S, 2mm,
Automatic Level Nikon AP-8, 1.5mm,
Automatic Level Nikon AS-2C, 0.8mm,
The article summarizes Riverside Presbyterian Day School's (RPDS) inaugural year of interscholastic athletics in the North Florida Independent Schools Athletics Conference during the 2015-2016 school year. It describes the successful seasons of the boys and girls basketball teams, including the girls team making it to the championship game. It also discusses the volleyball and flag football seasons, noting the improvement of skills and positive representation of RPDS. The flag football team made it to the championship game in a double elimination tournament before falling in the final match. The emphasis is on teamwork, skill development, sportsmanship and fun over championships.
Osman Hussain Hamed Hamdan is a Sudanese national born on March 20, 1985. He has a Flight Operation Officers License from 2011 and a degree in Total Quality Management from Sudan University of Science & Technology from 2009. He has over 10 years of experience as a flight dispatcher and manager for various aviation companies in Sudan and the UAE. His interests include travel, becoming a loadmaster, and visiting the UK and US. He lists his preferred future employer as EIREEH Aviation Services in Khartoum, Sudan.
AfroTech is a leading provider of security, e-money, e-medicine, and tracking solutions in Sudan. It was founded in 2007 and has expanded to provide innovative IT solutions to meet clients' unique business and technical needs through quality technology services. AfroTech delivers complex, integrated solutions to corporate, military, and government clients using cutting-edge technologies.
The document is a newsletter from the Business Council of Mongolia providing news highlights from Mongolia. It includes summaries of over 30 news stories covering business, economic, and political topics in Mongolia. Some of the key stories include MMC receiving notice to pay $95.4 million in debt, SouthGobi shares falling after missing a loan payment, Erdene closing a $2.5 million financing deal with Sandstorm Gold, and Xanadu reporting high-grade assay results from its Oyut Ulaan copper-gold project. The newsletter also provides updates on upcoming Business Council events and presentations.
This document provides a summary of market and design research projects conducted by Antony Ochieng Odhiambo from 2013 to 2016. It lists over 20 projects from various industries including ICT, FMCG, media, telecommunications, banking/finance, beverages, and insurance. For each project, it describes the objectives, methodology, and Antony's role as quality assurance assistant. It also briefly describes a pilot soil aerification project involving the use of modified paper towel rolls to disperse air and nutrients into soil at various depths.
The document summarizes recent economic developments and outlook for Indonesia. Key points:
- Tightening global liquidity led to capital outflows from Indonesia, weakening the currency and pushing up inflation in 2013-2014. In response, interest rates were hiked and export restrictions introduced.
- Real GDP growth slowed to 5.1% in 2014, as exports and investment declined. Inflation has slowed to 4.0% in line with tighter monetary policy. The current account deficit widened to 4.3% of GDP due to weak exports and high imports.
- The new government faces challenges of slowing growth amid tight policies. Growth is forecast to further slow in the near term before recovering on reforms and export growth
As of 10/16/2016 here are the court documents in the Dinar Banker and Sterling Currency Group court case 115-CV-0232-LMM
Other search terms:
Dinar Guru
Dinar Recaps
Iraqi Dinar
the iqd team
iraqi dinar revaluation news today
dinar detectives
dinar news today
iqd
dinar news
iraqi dinar news
tnt dinar
dinar recaps
iraqi news
iraq news today
iraq dinar blog
stage3alpha
currency newshound
IHS Nigeria had a successful year in 2010, transforming from a managed services provider into a leading collocation operator in Africa. Key achievements included refinancing expensive local loans with international loans at lower interest rates, approximately doubling its managed sites portfolio to 2,500 sites, and ramping up collocation tenancy. The company's revenue crossed $100 million while maintaining profit growth. Challenges from declining mobile revenues were addressed through cost-saving measures like hybrid power solutions. Going forward, IHS will focus on increasing managed services and collocation, pursuing tower acquisitions across Africa, and potentially managing over 2,000 towers.
Khi phát triển một phần mềm cần xác định những thành phần cần sử dụng để bắt tay vào công việc. Điều này đảm bảo tính logic và nhất quán cho sản phẩm phần mềm từ lúc bắt đầu xây dựng cho đến lúc duy trì, thậm chí là cải tiến. Vậy Software Stack là gì và làm thế nào để thiết lập Stack khi phát triển phần mềm!
https://growupwork.com/blog/kien-thuc-ky-thuat/software-stack-la-gi-771
1. QU N LÍ C S DATAẢ Ơ Ở
Chapter 1: DATABASE
Part 1: Các t vi t t t và nghĩaừ ế ắ
Vi t t tế ắ T khóaừ Nghĩa
Data D ̃ liêuư ̣
Database C s d ̃ liêuơ ở ư ̣
DBMS Database Managerment System H qu n tr c s d ̃ liêuệ ả ị ơ ở ư ̣
RDBMS Relational Database Managerment System H qu n tr c s d ̃ liêu quan hệ ả ị ơ ở ư ̣ ệ
MDBMS Multi Database Managerment System H qu n tr DATABASE đa ph ng ti nệ ả ị ươ ệ
MIRS H th ng truy v n thông tin đa ph ng ti nệ ố ấ ươ ệ
SMDS H th ng DATABASE đa ph ng ti n có c u trúcệ ố ươ ệ ấ
IR Information Retrival Truy xu t thông tinấ
MIRS Multimedia Information Retrieval System H th ng truy xu t thông tin đa ph ng ti nệ ố ấ ươ ệ
XML eXtenside Markup language Ngôn ng đánh d u m r ngữ ấ ở ộ
SQL Structured Query Language Ngôn ng truy v n c u trúcữ ấ ấ
Metadata Siêu data
Entity Th c thự ể
Multimedia Đa ph ng ti nươ ệ
Media Ph ng ti nươ ệ
Part 2: Công c s d ngụ ử ụ
Lesson 1: SQL server 2008
Lesson 2: mySQL
C s d li u MySQL đã tr thành c s d li u mã ngu n m ph bi n nh t trên th gi i vì c ch x lý nhanh và n đ nh c a nó, s đáng tin c y cao vàơ ở ữ ệ ở ơ ở ữ ệ ồ ở ổ ế ấ ế ớ ơ ế ử ổ ị ủ ự ậ
d s d ng.ễ ử ụ
2. Nó đ c s d ng m i n i – ngay c châu Nam C c - b i các nhà phát tri n Web riêng l cũng nh r t nhi u các t ch c l n nh t trên th gi i đ ti t ki mượ ử ụ ọ ơ ả ự ở ể ẻ ư ấ ề ổ ứ ớ ấ ế ớ ể ế ệ
th i gian và ti n b c cho nh ng Web sites có dung l ng l n, ph n m m đóng gói – bao g m c nh ng nhà đi đ u trong lĩnh v c công nghi p nh Yahoo!,ờ ề ạ ữ ượ ớ ầ ề ồ ả ữ ầ ự ệ ư
Alcatel-Lucent, Google, Nokia, YouTube và Zappos.com.
MySQL không ch là c s d li u mã ngu n m ph bi n nh t trên th gi i, nó còn tr thành c s d li u đ c ch n cho th h m i c a các ng d ngỉ ơ ở ữ ệ ồ ở ổ ế ấ ế ớ ở ơ ở ữ ệ ượ ọ ế ệ ớ ủ ứ ụ
xây d ng trên n n Linux, Apache, MySQL, PHP/Perl/Python. MySQL ch y trên h n 20 flatform bao g m: Linux, Windows, OS/X, HP-UX, AIX, Netware, mangự ề ạ ơ ồ
đ n cho b n tính linh ho t trong vi c s d ng.ế ạ ạ ệ ử ụ
Dù b n m i làm quen v i công ngh c s d li u hay là m t nhà phát tri n giàu kinh nghi m ho c là DBA, MySQL s giúp b n thành công.ạ ớ ớ ệ ơ ở ữ ệ ộ ể ệ ặ ẽ ạ
Đây là 10 lý do b n nên ch n MySQL cho ng d ng c a mình:ạ ọ ứ ụ ủ
Tính linh ho tạ
Máy ch c s d li u MySQL cung c p đ c tính linh ho t, có s c ch a đ x lý các ng d ng đ c nhúng sâu v i dung l ng ch 1MB đ ch y các kho dủ ơ ở ữ ệ ấ ặ ạ ứ ứ ể ử ứ ụ ượ ớ ượ ỉ ể ạ ữ
li u đ s lên đ n hàng terabytes thông tin. S linh ho t v flatform là m t đ c tính l n c a MySQL v i t t c các phiên b n c a Linux, Unix, và Windowsệ ồ ộ ế ự ạ ề ộ ặ ớ ủ ớ ấ ả ả ủ
đang đ c h tr . Và dĩ nhiên, tính ch t mã ngu n m c a MySQL cho phép s tùy bi n hoàn toàn theo ý mu n đ thêm vào các yêu c u thích h p choượ ỗ ợ ấ ồ ở ủ ự ế ố ể ầ ợ
database server.
Tính th c thi caoự
Ki n trúc storage-engine cho phép các chuyên gia c s d li u c u hình máy ch c s d li u MySQL đ c tr ng cho các ng d ng đ c thù. Dù ng d ng làế ơ ở ữ ệ ấ ủ ơ ở ữ ệ ặ ư ứ ụ ặ ứ ụ
m t h th ng x lý giao d ch t c đ cao hay web site dung l ng l n ph c v hàng tri u yêu c u m i ngày, MySQL có th đáp ng kh năng x lý nh ngộ ệ ố ử ị ố ộ ượ ớ ụ ụ ệ ầ ỗ ể ứ ả ử ữ
đòi h i kh t khe nh t c a b t kì h th ng nào. V i các ti n ích t i t c đ cao, đ c bi t b nh caches, và các c ch x lý nâng cao khác, MySQL đ a ra t tỏ ắ ấ ủ ấ ệ ố ớ ệ ả ố ộ ặ ệ ộ ớ ơ ế ử ư ấ
c các vũ khí c n ph i có cho các h th ng doanh nghi p khó tính ngày nay.ả ầ ả ệ ố ệ
Có th s d ng ngayể ử ụ
S đáng tin c y cao và tính “mì ăn li n” là nh ng tiêu chu n đ m b o c a MySQL. MySQL đ a ra nhi u tùy ch n có th dùng ngay tự ậ ề ữ ẩ ả ả ủ ư ề ọ ể ừ c u hình tái t oấ ạ
ch /t t c đ cao, đ các nhà phân ph i th 3 đ a ra nh ng gi i pháp có th dùng ngay duy nh t cho server c s d li u MySQL.ủ ớ ố ộ ể ố ứ ư ữ ả ể ấ ơ ở ữ ệ
H tr giao d ch m nhỗ ợ ị ạ
MySQL đ a ra m t trong s nh ng engine giao d ch c s d li u m nh nh t trên th tr ng. Các đ c tr ng bao g m h tr giao d ch ACID hoàn thi nư ộ ố ữ ị ơ ở ữ ệ ạ ấ ị ườ ặ ư ồ ỗ ợ ị ệ
( Atomic – t đ ng, Consistent – th ng nh t, Isolated – đ c l p, Durable – b n v ng), khóa m c dòng không h n ch , kh năng giao d ch đ c phân lo i, vàự ộ ố ấ ộ ậ ề ữ ứ ạ ế ả ị ượ ạ
h tr giao d ch đa d ng (multi-version) mà ng i đ c không bao gi gây tr ng i cho ng i vi t và ng c l i. Tính toàn v n c a d li u cũng ph i đ cỗ ợ ị ạ ườ ọ ờ ở ạ ườ ế ượ ạ ẹ ủ ữ ệ ả ượ
b o đ m trong su t quá trình server có hi u l c, các m c giao d ch đ c l p đ c chuyên môn hóa, và phát hi n khóa ch t ngay l p t c.ả ả ố ệ ự ứ ị ộ ậ ượ ệ ế ậ ứ
N i l u tr Web và Data đáng tin c yơ ư ữ ậ
MySQL là nhà máy chu n cho các web sites ph i trao đ i th ng xuyên vì nó có engine x lý t c đ cao, kh năng chèn d li u nhanh ghê g m, và h trẩ ả ổ ườ ử ố ộ ả ữ ệ ớ ỗ ợ
m nh cho các ch c năng chuyên d ng c a web nh tìmạ ứ ụ ủ ư ki m văn b n nhanh. Nh ng tính năng này cũng đ c áp d ng cho môi tr ng l u tr d li u màế ả ữ ượ ụ ườ ư ữ ữ ệ
MySQL tăng c ng đ n hàng terabyte cho các server đ n. Các tính năng khác nh b ng nh chính, cây B và ch s băm, và b ng l u tr đã đ c cô l i đườ ế ơ ư ả ớ ỉ ố ả ư ữ ượ ạ ể
gi m các yêu c u l u tr đ n 80% làm cho MySQL tr thành l a ch n t t nh t cho c ng d ng web và các ng d ng doanh nghi p.ả ầ ư ữ ế ở ự ọ ố ấ ả ứ ụ ứ ụ ệ
3. Ch đ b o m t d li u m nhế ộ ả ậ ữ ệ ạ
Vì b o m t d li u cho m t công ty là công vi c s m t c a các chuyên gia v c s d li u, MySQL đ a ra tính năng b o m t đ c bi t ch c ch n d li u sả ậ ữ ệ ộ ệ ố ộ ủ ề ơ ở ữ ệ ư ả ậ ặ ệ ắ ắ ữ ệ ẽ
đ c b o m t tuy t đ i. Trong vi c xác nh n truy c p c s d li u, MySQL cung c pượ ả ậ ệ ố ệ ậ ậ ơ ở ữ ệ ấ các kĩ thu t m nh mà ch c ch n ch có ng i s d ng đã đ c xácậ ạ ắ ắ ỉ ườ ử ụ ượ
nh n m i có th truy nh p đ c vào server c s d li u, v i kh năng này đ ch n ng i dùng ngay t m c máy khách là đi u có th làm đ c. SSH vàậ ớ ể ậ ượ ơ ở ữ ệ ớ ả ể ặ ườ ừ ứ ề ể ượ
SSL cũng đ c h tr đ ch c ch n các k t n i đ c an toàn và b o m t. M t đ i t ng framework đ c quy n đ c đ a ra mà ng i s d ng ch có thượ ỗ ợ ể ắ ắ ế ố ượ ả ậ ộ ố ượ ặ ề ượ ư ườ ử ụ ỉ ể
nhìn th y d li u, các hàm mã hóa và gi i mã d li u m nh ch c ch n r ng d li u s đ c b o m t. Cu i cùng, ti n ích backup và recovery cung c p b iấ ữ ệ ả ữ ệ ạ ắ ắ ằ ữ ệ ẽ ượ ả ậ ố ệ ấ ở
MySQL và các hãng ph n m m th 3 cho phép backup logic và v t lý hoàn thi n cũng nh recovery toàn b ho c t i m t th i đi m nào đó.ầ ề ứ ậ ệ ư ộ ặ ạ ộ ờ ể
S phát tri n ng d ng h n h pự ể ứ ụ ỗ ợ
M t trong s các lý do khi n cho MySQL là c s d li u mã ngu n m ph bi n nh t th gi i là nó cung c p h tr h n h p cho b t kì s phát tri n ngộ ố ế ơ ở ữ ệ ồ ở ổ ế ấ ế ớ ấ ỗ ợ ỗ ợ ấ ự ể ứ
d ng nào c n. Trong c s d li u, h tr có th đ c tìm th y trong các stored procedure, trigger, function, view, cursor, ANSI-standard SQL, và nhi uụ ầ ơ ở ữ ệ ỗ ợ ể ượ ấ ề
n a. V i các ng d ng nhúng, th vi n plug-in có s n đ nhúng vào c s d li u MySQL h trữ ớ ứ ụ ư ệ ẵ ể ơ ở ữ ệ ỗ ợ trong b t kì ng d ngấ ứ ụ nào. MySQL cũng cung c p các bấ ộ
k t n i nh : ODBC, JDBC, … đ cho phép t t c các form c a ng d ng s d ng MySQL nh m t server qu n lí d li u đ c u tiên.ế ố ư ể ấ ả ủ ứ ụ ử ụ ư ộ ả ữ ệ ượ ư
D dàng qu n lýễ ả
MySQL trình di n kh năng cài đ t nhanh đ c bi t v i th i gian m c trung bình t lúc download ph n m m đ n khi cài đ t hoàn thành ch m t ch a đ yễ ả ặ ặ ệ ớ ờ ở ứ ừ ầ ề ế ặ ỉ ấ ư ầ
15 phút. Đi u này đúng cho dù flatform là Microsoft Windows, Linux, Macintosh hay Unix. Khi đã đ c cài đ t, tính năng t qu n lý nh t đ ng m r ngề ượ ặ ự ả ư ự ộ ở ộ
không gian, t kh i đ ng l i, và c u hình đ ng s n sàng cho ng i qu n tr c s d li u làm vi c. MySQL cũng cung c p m t b hoàn thi n các công cự ở ộ ạ ấ ộ ẵ ườ ả ị ơ ở ữ ệ ệ ấ ộ ộ ệ ụ
qu n lý đ h a cho phép m t DBA qu n lý, s a ch a, và đi u khi n ho t đ ng c a nhi u server MySQL t m t máy tr m đ n. Nhi u công c c a các hãngả ồ ọ ộ ả ử ữ ề ể ạ ộ ủ ề ừ ộ ạ ơ ề ụ ủ
ph n m m th 3 cũng có s n trong MySQL đ đi u khi n các tác v t thi t k d li u và ETL, đ n vi c qu n tr c s d li u hoàn thi n, qu n lý côngầ ề ứ ẵ ể ề ể ụ ừ ế ế ữ ệ ế ệ ả ị ơ ở ữ ệ ệ ả
vi c, và th c hi n ki m tra.ệ ự ệ ể
Mã ngu n m t do và h tr 24/7ồ ở ự ỗ ợ
Nhi u công ty l ng l trong vi c giao phó toàn b cho ph n m m mã ngu n m vì h tin h không th tìm đ c m t cách h tr hay m ng l i an toànề ưỡ ự ệ ộ ầ ề ồ ở ọ ọ ể ượ ộ ỗ ợ ạ ướ
ph c v chuyên nghi p, hi n t i, h tin vào ph n m m có b n quy n đ ch c ch n v s thành công toàn di n cho các ng d ng ch ch t c a h . Nh ngụ ụ ệ ệ ạ ọ ầ ề ả ề ể ắ ắ ề ự ệ ứ ụ ủ ố ủ ọ ữ
lo l ng c a h có th đ c d p b v i MySQL, s b i th ng là có trong m ng l i MySQL.ắ ủ ọ ể ượ ẹ ỏ ớ ự ồ ườ ạ ướ
T ng chi phí th p nh tổ ấ ấ
B ng cách s d ng MySQL cho các d án phát tri n m i, các công ty đang th y rõ vi c ti t ki m chi phí. Đ c hoàn thành thông qua s d ng server c sằ ử ụ ự ể ớ ấ ệ ế ệ ượ ử ụ ơ ở
d li u MySQL và ki n trúc scale-out, các doanh nghi p đã tìm ra cái mà h có th đ t đ c m c ng c nhiên v kh năng x lý. Thêm vào đó, tính tin c yữ ệ ế ệ ọ ể ạ ượ ở ứ ạ ề ả ử ậ
và d duy trì c a MySQL m c trung bình mà ng i qu n tr c s d li u không ph i m t nhi u th i gian s a ch a hay v n đ th i gian ch t.ễ ủ ở ứ ườ ả ị ơ ở ữ ệ ả ấ ề ờ ử ữ ấ ề ờ ế
4. Lesson 3: PHP
Part 3: Các khái ni m v DBMSệ ề
Lesson 1: DATA và DATABASE
Thông tin là DATA và t ng h p các DATA l i tr thành thông tin và nó là thành ph n quan tr ng trong b t kỳ lĩnh v c, công vi c nàoổ ợ ạ ở ầ ọ ấ ự ệ
Khái ni m DATA h p h n khái ni m thông tin. Thông tin luôn mang ý nghĩa và g m nhi u giá tr DATAệ ẹ ơ ệ ồ ề ị
DATABASE là m t t p h p DATA. Có th hi u r ng DATABASE là m t c ch t ch c có kh năng l u tr thông tin. V y DATABASE là m t t p h pộ ậ ợ ể ể ằ ộ ơ ế ổ ứ ả ư ữ ậ ộ ậ ợ
DATA đ c t ch c s p x p sao cho n i dung c a nó có th d dàng đ c truy c p , qu n lí và c p nh tượ ổ ứ ắ ế ộ ủ ể ễ ượ ậ ả ậ ậ
Lesson 2: Qu n lí DATAả
Qu n tr DATA là vi c qu n lý l ng l n thông tin, bao g m c l u tr thông tin và c ch thao tác thông tin trên các thông tin đó. Có 2 ph ngả ị ệ ả ượ ớ ồ ả ư ữ ơ ế ươ
pháp qu n tr DATA khác nhau là h th ng d a trên t p tin và h th ng DATABASEả ị ệ ố ự ậ ệ ố
Group 1: H th ng d a trên t p tinệ ố ự ệ
Đ c tr ng:ặ ư
M i ch ng trình ng d ng có m t file l u tr riêng bi t, nó gi ng nh các b ng v i các dòng g i là b n ghi và các c t g i là các tr ngỗ ươ ứ ụ ộ ư ữ ệ ố ư ả ớ ọ ả ộ ọ ườ
M t nhóm các file đ c l u tr trên m t máy tính có th đ c truy c p b i m t đi u hành viênộ ượ ư ữ ộ ể ượ ậ ở ộ ề
Nh c đi m:ượ ể
D th a và mâu thu n DATAư ừ ẫ
Truy v n b t ngấ ấ ờ
Cô l p DATAậ
X lý các truy c p đ ng th i b t th ngử ậ ồ ờ ấ ườ
V n đ v b o m tấ ề ề ả ậ
5. Vân đ v toàn v nề ề ẹ
Group 2: H th ng DATABASEệ ố
H th ng DATABASE: là DATA đ c s d ng l u tr có h th ng và có t ch c sao cho vi c qu n lý đ c nhanh chóng và d dàng.ệ ố ượ ử ụ ư ữ ệ ố ổ ứ ệ ả ượ ễ
u đi m:Ư ể
Gi m d th a DATAả ư ừ
Gi m mâu thu n DATAả ẫ
DATA có th chia sể ẻ
Các chu n d c thi t l p và duy trìẩ ượ ế ậ
Toàn v n DATA đ c duy trìẹ ượ
Tăng tính b o m t khi đ c cài đ tả ậ ượ ặ
Lesson 3: DBMS
Group 1: Khái ni mệ
DBMS là h th ng ph n m m cho phép đ nh nghĩa, xây d ng và b o trì DATABASE. Toàn b các thao tác trên DATA c a ng i dùng đ u do DBMSệ ố ầ ề ị ự ả ộ ủ ườ ề
đi u khi nề ể
Do qu n lí t p trung nên DBMS có th qu n lí đ c 1 kh i l ng l n DATA m t cách thu n ti nả ậ ể ả ượ ố ượ ớ ộ ậ ệ
H u h t các DBMS s d ng ngôn ng truy v n có c u trúc (SQL)ầ ế ử ụ ữ ấ ấ
L i ích:ợ
L u tr DATAư ữ
Đ nh nghĩa DATAị
Thao tác trên DATA
B o m t và toàn v n DATAả ậ ẹ
Truy c p đ ng th i và khôi ph c DATAậ ồ ờ ụ
6. Hi u năngệ
Đi u khi n đa truy c pề ể ậ
Ngôn ng truy su t DATABASE và giao di n l p trình ng d ng ( API)ữ ấ ệ ậ ứ ụ
Nh v y, DATABASE là t p h p các DATA liên quan v i nhau mà mu n qu n lý và s d ng các DATA này thì c n có ph n m m nên có th hi u r ngư ậ ậ ợ ớ ố ả ử ụ ầ ầ ề ể ể ằ
DATABASE + Software = DBMS
Group 2: Các mô hình DATABASE
I: Mô hình DATA ph ngẳ (Flat file)
DATABASE ch ch a 1 b ng hay 1ỉ ứ ả File
Nó đ c s d ng cho nh ng DATABASE đ n gi n vì không th qu n lí đ c m t l ng l n DATA, t o ra s d th a khi DATA đ c Descriptionượ ử ụ ư ơ ả ể ả ượ ộ ượ ớ ạ ự ư ừ ượ
nhi u l nề ầ
II: Mô hình DATA phân c p (Hierarchical)ấ
Các b n ghi đ c liên k t v i nhau thông qua các c p b c gi ng c u trúc cây. Cácả ượ ế ớ ấ ậ ố ấ b ngả đ c g i là quan h cha - conượ ọ ệ
M t b n ghi cha có th có m t vài b n ghi conộ ả ể ộ ả
M t b n ghi con ch có m t và ch m t b n ghi chaộ ả ỉ ộ ỉ ộ ả
u đi m:Ư ể
DATA đ c ghi trên DATABASE, nên DATA đ c chia s m t cách d dàng và b o m t b i DBMSượ ượ ẻ ộ ễ ả ậ ở
Đ c l p DATA đ c DBMS giúp gi m d c chi phí b o trì ch ng trìnhộ ậ ượ ả ượ ả ươ
III: Mô hình m ngạ (Renational)
Mô hình phân c p là t p con c a mô hình m ng. Thay vì s d ng cây phân c p nút cha đ n, mô hình m ng s d ng lý thuy t đ t o ra m t câyấ ậ ủ ạ ử ụ ấ ơ ạ ử ụ ế ể ạ ộ
phân c p mà trong đó m i nút con có th có nhi u h n m t nút chaấ ỗ ể ề ơ ộ
Các thành ph n ngôn ng đ c s d ng trong mô hình m ng là:ầ ữ ượ ử ụ ạ
7. Ngôn ng đ nh nghĩa DATA (DDL - Database Manipulation Language) đ c s d ng đ t o, xóa DATABASE và các đ i t ng DATABASE. M t s đữ ị ượ ử ụ ể ạ ố ượ ộ ơ ồ
con c a DDL cho phép ng i qu n tr DATABASE đ nh nghĩa các thành ph n DATAủ ườ ả ị ị ầ
Ngôn ng thao tác DATA (DML - Database Manipulation Language) đ c s d ng đ thêm, s a, xóa thông tin trên DATABASE. Nh ng ng i dùngữ ượ ử ụ ể ử ữ ườ
DATABASE s d ng các câu l nh đ thao tác trên DATABASEử ụ ệ ể
Ngôn ng đi u khi n (DCL - Data Control Language) đ c s d ng đ qu n tr các quy n trên DATABASE và đ i t ng DATABASEữ ề ể ượ ử ụ ể ả ị ề ố ượ
Ngôn ng ̃ truy vấn d ̃ liêu (DQL - Data Query Language) đ c dùng đê lấy DATABASE và đăt th ́ t lên nóư ư ̣ ượ ̉ ̣ ư ự
Ngôn ng ̃ ra lênh thông th ̀ng (CCL - Common Command Language) đ c dùng đê tìm kiếm môt cách hiêu qua trong DATABASE. Nó có thê đ cư ̣ ươ ượ ̉ ̣ ̣ ̉ ̉ ượ
́ng dung vào các th viên tr c tuyến, n i có khối l ng thông tin l ́n và cần đ c sàng loc trong môt th ̀i gian ngắnư ̣ ư ̣ ự ơ ượ ơ ượ ̣ ̣ ơ
u đi m:Ư ể
Các quan h d dàng đ c thi t l p trên mô hình m ng h n so v i mô hình phân c pệ ễ ượ ế ậ ạ ơ ớ ấ
Mô hình nay đ m b o s toàn v n DATAả ả ự ẹ
Mô hình này đ t đ c s đ c l p DATA c n thi tạ ượ ự ộ ậ ầ ế
Nh c đi m:ượ ể
Khó thi t k DATABASEế ế
Ph i n m rõ c u trúc bên trong DATABASE đ có th truy c pả ắ ấ ể ể ậ
Do cung c p môi tr ng truy c p DATA nên đ di chuy n t A-D ph i tuân theo th t A-B-C-D, ng i s d ng t A ph i qua B và C đ đ n Dấ ườ ậ ể ể ừ ả ứ ự ườ ử ụ ừ ả ể ế
R t khó đ cài đ t và b o trìấ ể ặ ả
IV: Mô hình quan hệ
Mô hình quan h là m t n l c nh m đ n gi n hóa c u trúc DATABASE. Lý thuy t mô hình quan h đ c xây d ng d a trên n n t ng khái ni m c aệ ộ ỗ ự ằ ơ ả ấ ế ệ ượ ự ự ề ả ệ ủ
lý thuy t t p h p trong toán h c. Không gi ng nh mô hình phân c p và mô hình m ng nó không có các liên k t v t lí. Nh ng phép toán đ c cung c p đế ậ ợ ọ ố ư ấ ạ ế ậ ữ ượ ấ ể
th c hi n trên các dòng c a b ng DATA. T t c data đ c bi u di n d i d ng th ng nh t là d ng b ng hai chi u. Các b ng (quan h ) ch a các dòng (b nự ệ ủ ả ấ ả ượ ể ễ ướ ạ ố ấ ạ ả ề ả ệ ứ ả
ghi) và các c t (tr ng). M i b ng đ u có > 1 tr ng (c t). M i b ng đ u có nhi u h n 1 khóa chính (primary key), có nhi u khóa ph (foreign key). DATAộ ườ ỗ ả ề ườ ộ ỗ ả ề ề ơ ề ụ
8. trên hai b ng đ c quan h v i nhau thông qua các c t thay cho các liên k t v t lí. Primary key trong m i b ng đóng vai trò t o quan h gi a các b ngả ượ ệ ớ ộ ế ậ ỗ ả ạ ệ ữ ả
trong cùng m t DATABASEộ
Mô hình Description DATABASE là m t t p h p là m t t p h p các quan h . Trong thu t ng mô hình:ộ ậ ợ ộ ậ ợ ệ ậ ữ
Dòng đ c g i là b n ghiượ ọ ả
C t đ c g i là tr ngộ ượ ọ ườ
B ng đ c g i là quan hả ượ ọ ệ
Danh sách các giá tr có th c a m t tr ng đ c g i là mi n. Có th có vài tr ng chung m t mi nị ể ủ ộ ườ ượ ọ ề ể ườ ộ ề
S tuple xác đ nh s ph n t trong quan hố ị ố ầ ử ệ
S property c a m t quan h xác đ nh b c c a quan hố ủ ộ ệ ị ậ ủ ệ
u đi mƯ ể :
Đ c s d ng m t cách ph bi n nh t hi n nayượ ử ụ ộ ổ ế ấ ệ
Cho phép l p trình viên t p trung vào góc nhìn logic h n là t p trung vào góc nhìn v t líậ ậ ơ ậ ậ
H tr linh ho t các truy v nỗ ợ ạ ấ
D dàng s d ng, cho dù ch a đ c đào t o nh ng v n có th t o thi t k m t DATABASE h p lý cũng nh ra các báo cáo truy v nễ ử ụ ư ượ ạ ư ẫ ể ạ ế ế ộ ợ ư ấ
Nh c đi mượ ể :
9. Th c thi ch m h n so v i các mô hình DATABASE khácự ậ ơ ớ
Lesson 4: RDBMS
Group 1: Khái ni mệ
RDBMS là DBMS mà t t c DATA đ c nhìn th y qua d ng b ng DATA và t t c các thao tác đ u th c hi n trên b ng.ấ ả ượ ấ ạ ả ấ ả ề ự ệ ả
RDBMS s d ng SQL đ chuy n các truy v n c a ng i dùng thành các mã kĩ thu t đ l y DATA theo yêu c u:ử ụ ể ể ấ ủ ườ ậ ể ấ ầ
Data (DATA) đ c trình bày nh t p h p cácượ ư ậ ợ b ngả
Quan h đ c bi u di n b ng m t b ngệ ượ ể ễ ằ ộ ả
Property là các c tộ
Tuple là các hàng bi u di n các entityể ễ
Key (khóa) nói chính xác h n là superkey – đ nh danh duy nh t c a m i entityơ ị ấ ủ ỗ , key đ c chia làm 2 lo iượ ạ :
Khóa chính
Khóa ngo iạ
S b n ghi quan h t ng s tupleố ả ệ ổ ố
B c quan h t ng s propertyậ ệ ổ ố
Mi n thề u c tính t p h p các giá tr c a propertyộ ậ ợ ị ủ
Khái ni mệ Nghĩa
Quan hệ M t b ngộ ả
Tuple M t dòng ho c m t b n ghi trong b ngộ ặ ộ ả ả
Tr ngườ M t tr ng ho c m t c t trong b ngộ ườ ặ ộ ộ ả
Cardinality c a m t b ngủ ộ ả S dòng trong m t b ngố ộ ả
B c c a quan hậ ủ ệ S tr ng trong m t b ngố ườ ộ ả
Mi n giá tr c a tr ngề ị ủ ườ T p các giá tr có th l u tr trong tr ngậ ị ể ư ữ ườ
Khóa chính c a b ngủ ả M t tr ng ho c m t t p các tr ng mà giá tr c a nó xác đ nh duy nh t các b n ghi trongộ ườ ặ ộ ậ ườ ị ủ ị ấ ả
b ngả
Khóa ngo iạ M t tr ng ho c m t t p các tr ng trong b ng R1 mà nó ch ra m i b ng c a R1 v i b ngộ ườ ặ ộ ậ ườ ả ỉ ố ả ủ ớ ả
R2
Các tr ng khóa ngo i trong R1 ph i ch a các giá tr so kh p v i các giá tr t ng ng trongườ ạ ả ứ ị ớ ớ ị ươ ứ
b ng R2ả
10. Group 2: Ng i dùng DBMSườ
Nhi u nhóm ng i dùng nh thi t k , s d ng và thao tác trên m t DATABASE l n:ề ườ ư ế ế ử ụ ộ ớ
Ng i qu n tr DATABASE (DBA)ườ ả ị
DBA là ng i thu th p thông tin s l u trong DATABASE (m t DATABASE đ c thi t k cung c p thông tin chính xác đúng lúc cho đúng ng i)ườ ậ ẽ ư ộ ượ ế ế ấ ườ
Nhi m v c a DBA là qu n lí các ngu n tài nguyên, c p phép quy n truy c p đ n DATABASE, ph i h p và giám sát quá trình s d ng, đáp ng cácệ ụ ủ ả ồ ấ ề ậ ế ố ợ ử ụ ứ
ngu n tài nguyên ph n c ng và ph n m m khi c n.ồ ầ ứ ầ ề ầ
Gi i thích các v n đ nh ph m vi nguyên t c b o m t và th i gian ph n h i h th ng ch mả ấ ề ư ạ ắ ả ậ ờ ả ồ ệ ố ậ
Ng i thi t k DATABASEườ ế ế
Nhi m v là xác đ nh DATA đ c l u vào DATABASE và ch n các c u trúc phù h p đ th hi n và l u DATAệ ụ ị ượ ư ọ ấ ợ ể ể ệ ư
Giao ti p v i ng i dùng DATAABASE t ng lai đ n m b t và c p nh t các thi t k đ đáp ng đ c các yêu c uế ớ ườ ươ ể ắ ắ ậ ậ ế ế ể ứ ượ ầ
Ng i phân tích h th ng và l p trình ng d ngườ ệ ố ậ ứ ụ
L p trình viên phân tích: Ch ra các yêu c u c a ng i dùng đ u cu i và phát tri n các đ c t cho các giao d ch tr c nh m th a mãn các yêu c u đóậ ỉ ầ ủ ườ ầ ố ể ặ ả ị ướ ằ ỏ ầ
L p trình viên ng d ng đ t các đ c t thành các ch ng trình, sau đó ki m tra, g l i, vi t tài li u và duy trì các giao d ch đã có tr c đóậ ứ ụ ặ ặ ả ươ ể ỡ ỗ ế ệ ị ướ
Ngoài ra còn có nh ng ng i khác c ng tác vào quá trình thi t k , phát tri n và v n hành ph n m m DBMS và môi tr ng h th ngữ ườ ộ ế ế ể ậ ầ ề ườ ệ ố
Ng i thi t k DBMS và th c thiườ ế ế ự
Đây chính là nh ng ng i thi t k và cài đ t model cũng nh giao di n c a DBMS nh m t gói ph n m mữ ườ ế ế ặ ư ệ ủ ư ộ ầ ề
M t DBMS là m t h th ng ph n m m ph c t p bao g m nhi u thành ph n nh : model cài đ t b ng danh m c, ngôn ng truy v n, các b x lý giao di n,ộ ộ ệ ố ầ ề ứ ạ ồ ề ầ ư ặ ả ụ ữ ấ ộ ử ệ
truy c p DATA và b o m tậ ả ậ
DBMS ph i giao ti p đ c v i các ph n m m h th ng khác nhau nh : h đi u hành, các trình biên d ch c a các ngôn ng l p trình khác nhauả ế ượ ớ ầ ề ệ ố ư ệ ề ị ủ ữ ậ
Ng i dùng đ u cu i.ườ ầ ố
Nhi m v là kích ho t m t ng d ng t ng tác v i h th ng, vi t m t ch ng trình truy v n, s a đ i ho c xóa DATA trong DATABASEệ ụ ạ ộ ứ ụ ươ ớ ệ ố ế ộ ươ ấ ử ổ ặ
Group 3: Các entity và các b ngả
M t entity là m t ng i, m t đ i t ng, m t s ki n, … mà nó có th xác đ nh riêng bi tộ ộ ườ ộ ố ượ ộ ự ệ ể ị ệ
M t entity có m t s tính ch t đ c xem nh là các tr ng và m i entity đ c gán m t tênộ ộ ố ấ ượ ư ườ ỗ ượ ộ
M t b ng ch a m t nhóm các entity g i là t p các entityộ ả ứ ộ ọ ậ
Khái ni m b ng và t p các entity có th thay th cho nhau. M t b ng đ c g i là m t quan h , các hàng đ c xem nh tuples và các c t đ c xem nhệ ả ậ ể ế ộ ả ượ ọ ộ ệ ượ ư ộ ượ ư
các tr ngườ
11. Các đ c tính c a b ng là:ặ ủ ả
C u trúc 2 chi u bao hàm các c t và hàng đ c nh n l y nh b ngấ ề ộ ượ ậ ấ ư ả
M i b ph n th hiỗ ộ ậ ể ện m t th c th đ n trong t p th c thộ ự ể ơ ậ ự ể
M i c t có 1 tên duy nh tỗ ộ ấ
Giao gi a hàng và c t th hi n m t giá tr data đ nữ ộ ể ệ ộ ị ơ
M i b ng ph i có m t khóa chính giúp xác đ nh duy nh t m i hàngỗ ả ả ộ ị ấ ỗ
T t c các giá tr trong m t c t ph i tuân theo cùng đ nh d ng dataấ ả ị ộ ộ ả ị ạ
VD: n u tr ng gán có đ nh d ng s , t t c các giá tr trong c t th hi n tr ng ph i là sế ườ ị ạ ố ấ ả ị ộ ể ệ ườ ả ố
M i c t có ph m vi giá tr xác đ nh g i là mi n giá trỗ ộ ạ ị ị ọ ề ị
Th t các hàng, các c t không quan tr ng trong DATABASEứ ự ộ ọ
Group 4: So sánh gi a DBMS và RDBMSữ
DBMS RDBMS
Không c n có data theo c u trúc d ng b ng, không ép bu c cácầ ấ ạ ả ộ
m i quan h d ng b ng gi a các m c data.ố ệ ạ ả ữ ụ
Trong RDBMS, c u trúc b ng là b t bu c và gi a chúng có m iấ ả ắ ộ ữ ố
quan h v i nhau đ c đ m b o b i h th ng. Các m i quan hệ ớ ượ ả ả ở ệ ố ố ệ
này làm cho ng i dùng có th áp d ng và qu n lý các qui t cườ ể ụ ả ắ
x lý vào các đo n mã.ử ạ
S l ng nh DATA đ c l u tr và thao tác.ố ượ ỏ ượ ư ữ RDBMS có th l u tr và thao tác trên m t s l ng l n DATA.ể ư ữ ộ ố ượ ớ
DBMS kém đ m b o h n RDBMS.ả ả ơ DBMS kém đ m b o h n RDBMS.ả ả ơ
Nó là 1 h th ng đ n ng i dùng.ệ ố ơ ườ Nó là 1 h th ng đa ng i dùngệ ố ườ
H u h t các DBMS không h tr ki n trúc client/server.ầ ế ổ ợ ế Nó h tr ki n trúc client/server.ổ ợ ế
Trong RDBMS:
12. B ng là quan tr ng nh t. Do đó, ng i dả ọ ấ ườ ùng có th thi t l p nhi u r ng bu c toàn v n cho các b ng đ data sau cùng đ c s d ng b i ng i sể ế ậ ề ằ ộ ẹ ả ể ượ ử ụ ở ườ ử
d ng v n gi s đúng đ nụ ẫ ữ ự ắ
Trong tr ng h p c a các DBMS các entity là quan tr ng h n và không có b ng đ c ti t l p gi a các entity nàyườ ợ ủ ọ ơ ả ượ ế ậ ữ
Part 4: Mô hình hóa DATA
Lesson 1: Mô hình DATA
Group 1: Khái ni mệ
Là nhóm các công c lý thuy t đ Description DATA, các m i b ng và ng nghĩa c a chúng.ụ ế ể ố ả ữ ủ
Nó cũng bao g m c Description các ràng bu c toàn v n mà DATA ph i tuân theoồ ả ộ ẹ ả
Group 2: Áp d ngụ
Quá trình áp d ng m t mô hình thích h p đ t ch c và c u trúc DATA đ c g i là mô hình hóa DATA. Mô hình hoá DATA đ c chia nh thành baụ ộ ợ ể ổ ứ ấ ượ ọ ượ ỏ
b c:ướ
Conceptual Data Modeling (Mô hình DATA ý ni m)ệ
Mô hình Description cách nhìn DATA c a ng i s d ng, m i ng i s d ng khác nhau có cách nhìn DATA khác nhau.ủ ườ ử ụ ỗ ườ ử ụ
To Example: Phòng tuy n sinh nhìn th y các b n ghi d liêu v sinh viên. Phòng đào t o nhìn th y các b n ghi DATA v đi m thi,..ể ấ ả ữ ề ạ ấ ả ề ể
Logical Data Modeling (Mô hình DATA lu n lý)ậ
Mô hình Description chi ti t DATA cùng v i m i b ng c a DATA. Mô hình này bi u di n DATA c a database d i d ng tr u t ng so v i cách l u tr v t lýế ớ ố ả ủ ể ễ ủ ướ ạ ừ ượ ớ ư ữ ậ
Physical Data Modeling (Mô hình DATA v t lý)ậ
Mô hình Description toàn b các DATA c a database đ c bi u di n d i d ng g n v i l u tr trong các t p tin th c s trên các thi t b nhộ ủ ượ ể ễ ướ ạ ầ ớ ư ữ ậ ự ự ế ị ớ
13. Lesson 2: Mô hình entity, m i quan h E-Rố ệ
Group 1: Các nhóm c a mô hình entityủ
Mô hình lu n lý d a trên đ i t ngậ ự ố ượ
Mô hình lu n lý d a trên b n ghiậ ự ả
Mô hình v t lýậ
Group 2: Mô hình entity
Mô hình entity - M i quan h (E-R) thu c phân lo i đ u tiên. Mô hình đ c d a trên ý t ng đ n gi n. DATA có th đ c hi u nh là các đ i t ngố ệ ộ ạ ầ ượ ự ưở ơ ả ể ượ ể ư ố ượ
trong th gi i th c đ c g i là entity và các m i quan h t n t i gi a các entity này.ế ớ ự ượ ọ ố ệ ồ ạ ữ
Mô hình E-R bao g m năm thành ph n c b n. Đó là:ồ ầ ơ ả
1. Th c th - Entityự ể
M i th c th là m t đ i t ng t n t i trong th gi i th c và đ c phân bi t v i các đ i t ng khácỗ ự ể ộ ố ượ ồ ạ ế ớ ự ượ ệ ớ ố ượ
VD: sinh viên A, thí sinh s 078ố
2. T p entity - Entity Setậ
Là m t nhóm th c th t ng đ ng nhauộ ự ể ươ ồ
VD: sinh viên, nhân viên
3. M i quan h - Relationshipố ệ
Là s k t h p hay g n k t gi a m t hay nhi u th c thự ế ợ ắ ế ữ ộ ề ự ể
VD: thu c v (belongs to), s h u (owns), làm vi c cho (works for), …ộ ề ở ữ ệ
4. T p quan h - Relationship Setậ ệ
M t t p h p các m i quan h t ng t nhau gi a 2 hay nhi u t p th c thộ ậ ợ ố ệ ươ ự ữ ề ậ ự ể
VD:làm vi c t i (work-in), gi a các nhân viên (Employee), và b pệ ạ ữ ộ h n (department)ậ
5. Tr ng – Attributesườ
Là các đ c tr ng c a các th c th , các tr ng phân bi t các th c th v i nhauặ ư ủ ự ể ườ ệ ự ể ớ
VD: sinh viên có các tr ng nh mã s sinh viên, tên, l p, …ườ ư ố ớ
Xe h i có các tr ng nh s đăng kí, tên xe, nhà s n xu t, …ơ ườ ư ố ả ấ
14. Các m i quan h đ c k t h p t m t ho c nhi u entity. Chúng có 3 ki u:ố ệ ượ ế ợ ừ ộ ặ ề ể
1. M i quan h t thân:ố ệ ự
Các m i quan h gi a các entity c a các t p entity gi ng nhau đ c g i là m i quan h t thânố ệ ữ ủ ậ ố ượ ọ ố ệ ự
2. M i quan h nh phân:ố ệ ị
Các m i quan h mà t n t i gi a các entity c a hai entity thu c các t p entity khác nhau đ c g i là quan h nh phânố ệ ồ ạ ữ ủ ộ ậ ượ ọ ệ ị
3. M i quan h tam phân:ố ệ
15. Các m i quan h mà t n t i gi a ba entity thu c các t p entity khác nhau đ c g i là m i quan h tam phânố ệ ồ ạ ữ ộ ậ ượ ọ ố ệ
Group 3: M i quan h E-Rố ệ
Các m i quan h có th đ c phân lo i d a trên ánh x t p h p. Các ánh x phân lo i khác nhau là:ố ệ ể ượ ạ ự ạ ậ ợ ạ ạ
I: Môt - m t (one-to-one)ộ
Ánh x này t n t i khi m t entity c a m t t p entity có th k t h p v i ch m t entity c a t p entity khácạ ồ ạ ộ ủ ộ ậ ể ế ợ ớ ỉ ộ ủ ậ
M i quan h 1-1 th c ch t không t n t i mà nó đ c t u d ng b ngố ệ ự ấ ồ ạ ượ ố ư ở ạ ả
II: M t - nhi u (one-to-many)ộ ề
Ánh x này t n t i khi m t entity c a m t t p entity đ c k t h p v i nhi u h n m t entity c a t p entity khácạ ồ ạ ộ ủ ộ ậ ượ ế ợ ớ ề ơ ộ ủ ậ
16. III: Nhi u-m t (many-to-one)ề ộ
Ánh x này t n t i khi nhi u entity c a m t t p entity đ c k t h p v i m t entity c a t p entity khácạ ồ ạ ề ủ ộ ậ ượ ế ợ ớ ộ ủ ậ
IV: Nhi u-nhi u (many-to-many)ề ề
Ánh x này t n t i khi s các entity c a t p entity đ c k t h p v i s entity c a t p entity khácạ ồ ạ ố ủ ậ ượ ế ợ ớ ố ủ ậ
17. Trong quá trình phân tích không t n t i quan h nhi u nhi u. n u có thì xu t hi n khi 2 b ng tr c yêu c uồ ạ ệ ề ề ế ấ ệ ả ướ ầ
Trong đó l y 2 khóa chính c a 2 b ng tr c chèn vào b ng m iấ ủ ả ướ ả ớ
Khi b ng m i xu t hi n thì quan h gi a chúng l i là quan h 1-1ả ớ ấ ệ ệ ữ ạ ệ
Không t n t i ph thu c b c c u trong b ngồ ạ ụ ộ ắ ầ ả
V: Plus
A: Primary key
Khóa chính là thu c tinh xác đ nh rõ duy nh t m t th c th trong m t t p th c thộ ị ấ ộ ự ể ộ ậ ự ể
B: Weak entity sets
Nhi u t p th c th không đ các tr ng đ thi t l p khóa chính đ c g i là t p th c th thi t y uề ậ ự ể ủ ườ ể ế ậ ượ ọ ậ ự ể ế ế
C: Strong entity sets
Các t p th c th có đ các tr ng đ thi t l p khóa chính đ c g i là các t p th c th m nhậ ự ể ủ ườ ể ế ậ ượ ọ ậ ự ể ạ
Group 4: Bi u đ entityể ồ
I: L c đ quan h entity (entity relationship diagrams)ượ ồ ệ
Bi u đ E-R là gi n đ trình bày c a mô hình E-R.ể ồ ả ồ ủ
Các ký hi u đ c dùng cho các thành ph n khác nhau có th nhìn th y trong b ng d i đây:ệ ượ ầ ể ấ ả ướ
18. Ngoài ra các tr ng trong mô hình E_R còn đ c phân chia ti p thành:ườ ượ ế
Multi-Valued (đa tr )ị
Đ c minh h a v i hình elip vi n kép, có nhi u h n m t giá tr v i ít nh t m t th hi n c a th c th ch a nóượ ọ ớ ề ề ơ ộ ị ớ ấ ộ ể ệ ủ ự ể ứ
Tr ng này có th có gi i h n giá tr cao và th p đ xác đ nh mi n giá tr ch a trong tr ngườ ể ớ ạ ị ấ ể ị ề ị ứ ườ
Composite (ph c h p)ứ ợ
Có th ch a 2 hay nhi u tr ng, bi u di n nhi u h n các tr ng c b nể ứ ề ườ ể ễ ề ơ ườ ơ ả
19. Derived (d n xu t)ẫ ấ
Đ c minh h a b ng hình elip vi n đ tượ ọ ằ ề ứ
Tr ng d n xu t là tr ng ph thu c hoàn toàn vào tr ng khácườ ẫ ấ ườ ụ ộ ườ
II: Các b c xây d ngướ ự
1. Thu th p t t c các DATA mà c n đ c mô hình.ậ ấ ả ầ ượ
2. Nh n bi t DATA mà có th đ c mô hình nh là các entity trong th gi i th c.ậ ế ể ượ ư ế ớ ự
3. Nh n bi t các tr ng cho m i entityậ ế ườ ỗ
4. S p x p các t p entity y u, các t p entity m nh.ắ ế ậ ế ậ ạ
5. S p x p các tr ng đóng vai trò khoá, các tr ng đa tr , các tr ng k t h p, các tr ng d n su t.ắ ế ườ ườ ị ườ ế ợ ườ ẫ ấ
6. Xác đ nh các m i quan h gi a các entity.ị ố ệ ữ
7. S d ng các ký hi u khác nhau đ v các entity, tr ng và m i quan h gi a chúng. Dùng các ký hi u thích h p trong khi v các tr ng.ử ụ ệ ể ẽ ườ ố ệ ữ ệ ợ ẽ ườ
Lesson 3: Chu n hóaẩ
Nó là ti n trình t ch c DATA m t cách có hi u qu trong DATABASE.ế ổ ứ ộ ệ ả
M c đích c a ti n trình chu n hoá:ụ ủ ế ẩ
Lo i b DATA b d th a mà v n đ m b o DATA ph thu c (ph thu c hàm là ràng bu c v s liên quan gi a nhi u tr ng trong b ng v i nhau )ạ ỏ ị ư ừ ẫ ả ả ụ ộ ụ ộ ộ ề ự ữ ề ườ ả ớ
Vào lúc đ u, Codd (1972) trình bày 3 d ng chu n (1NF, 2NF and 3NF), t t c d a trên s ph thu c gi a các tr ng c a b ngầ ạ ẩ ấ ả ự ự ụ ộ ữ ườ ủ ả
Group 1: D ng chu n m t (1NF)ạ ẩ ộ
Các b ng đ t d ng chu n m t n u:ả ạ ạ ẩ ộ ế
Chia DATA thành các b ng riêng bi t cho m i nhóm DATA có liên quanả ệ ỗ
20. To Example: B ng DATA sinh viên, b ng k t qu , môn h cả ả ế ả ọ
Toàn b các c t c a b ng ph i có giá tr đ n.ộ ộ ủ ả ả ị ơ
T t c các tr ng khoá ph i đ c xác đ nhấ ả ườ ả ượ ị
Group 2: D ng chu n hai (2NF)ạ ẩ
Các b ng đ t d ng chu n hai n u:ả ạ ạ ẩ ế
Chúng ph i tho các yêu c u c a d ng chu n m tả ả ầ ủ ạ ẩ ộ
M i tr ng(c t) không khóa đ u ph thu c đ y đ vào khóa chínhỗ ườ ộ ề ụ ộ ầ ủ
Ph thu c đ y đ : B là m t tr ng không khóa, X là m t t p tr ng làm khóa, X->B (X xác đ nh B) g i là ph thu c hàm đ y đ n u không có m t t pụ ộ ầ ủ ộ ườ ộ ậ ườ ị ọ ụ ộ ầ ủ ế ộ ậ
con nào c a X cũng có th xác đ nh B.ủ ể ị
Các b ng quan h v i nhau thông qua các khoá ngo iả ệ ớ ạ
Group 3: D ng chu n ba (3NF)ạ ẩ
Các b ng đ t d ng chu n ba n u:ả ạ ạ ẩ ế
Các b ng ph i tho các yêu c u d ng chu n haiả ả ả ầ ạ ẩ
Không t n t i ph thu c b c c u trong b ng (không t n t i ph thu c gi a các tr ng không ph i là khóa. Ph thu c có ngu n là tr ng khôngồ ạ ụ ộ ắ ầ ả ồ ạ ụ ộ ữ ườ ả ụ ộ ồ ườ
khóa)
Group 4: Phi chu n hóaẩ
Khi chu n hóa m t DATABASE, d th a DATA đ c gi n xu ng. đi u này làm gi m đi nhu c u l u tr cho DATABASE và đ m b o s toàn v n dataẩ ộ ư ừ ượ ả ố ề ả ầ ư ữ ả ả ự ẹ
Nh ng thay vào đó có m t s tr ng i:ư ộ ố ở ạ
Truy v n k t n i ph c t p do ph i th c hi n trên nhi u b ngấ ế ố ứ ạ ả ự ệ ề ả
K t n i có th đ c th c hi n trên nhi u h n ba b ng ph thu c vào nhu c u thông tinế ố ể ượ ự ệ ề ơ ả ụ ộ ầ
N i nh k t n i đ c s d ng th ng xuyên thì hi u xu t s d ng DATABASE s r t th p, th i gian th c thicuar CPU yêu c u truy xu t s r t l nố ư ế ố ượ ử ụ ườ ệ ấ ử ụ ẽ ấ ấ ờ ự ầ ấ ẽ ấ ớ
Trong tr ng h p này, l u tr d th a vài tr ng data s làm tăng hi u năng s d ng DATABASEườ ợ ư ữ ư ừ ườ ẽ ệ ử ụ
Các DATABASE ch p nh n s d th a data đ tăng hi u năng đ c g i là các DATABASE phi chu n và ti n trình c a vi c th c hi n này g i là ti n trìnhấ ậ ự ư ừ ể ệ ượ ọ ẩ ế ủ ệ ự ệ ọ ế
phi chu nẩ
Lesson 4: Các toán t quan hử ệ
Mô hình quan h đ c d a trên đ i s quan h , nó bao g m t p h p các toán t đ th c hi n trên các b ngệ ượ ự ạ ố ệ ồ ậ ợ ử ể ự ệ ả
M i toán t n m gi m t ho c hai b ng nh là đ u vào và k t qu b ng đ c xem là đ u raỗ ử ắ ữ ộ ặ ả ư ầ ế ả ả ượ ầ
21. Group 1: Ch n - SELECT :ọ
Toán t này đ c dùng đ trích DATA tho mãn v i đi u ki n đã cho. Ký hi u “σ – sic ma” đ c dùng đ bi u hi n cho phép ch nử ượ ể ả ớ ề ệ ệ ượ ể ể ệ ọ
Group 2: Chi u - PROJECT:ế
Toán t này đ c s d ng đ chi u các chi ti t c a m t b ng quan h . Nó ch hi n th chi ti t các yêu c u lo i b các c t đ c n đ nh. Toán t PROJECTử ượ ử ụ ể ế ế ủ ộ ả ệ ỉ ể ị ế ầ ạ ỏ ộ ượ ấ ị ử
đ c bi u di n b i ký hi u “π - pi”ượ ể ễ ở ệ
Group 3: Tích đ các - PRODUCT:ề
Toán t này đ c bi u th b i “ử ượ ể ị ở x”. Nó giúp k t h p thông tin t hai b ngế ợ ừ ả
Group 4: H p - UNION:ợ
Toán t UNION dùng đ t p h p DATA t các b ng khác nhau và hi n di n phiên b n h p nh t c a DATA đ y đ . Toán tử ể ậ ợ ừ ả ệ ệ ả ợ ấ ủ ầ ủ ử UNION đ cượ mô tả b i ký tở ự “U”
L u ý:ư
Chú ý r ng m i l nh SELECT trongằ ỗ ệ UNION ph i có cùng s c t.ả ố ộ Các c t cũng ph i cóộ ả cùng ki uể data
Ngoài ra, các c t trong t ng câu l nh SELECT ph i đ c theo th tộ ừ ệ ả ượ ứ ự
I: Syntax
SELECT * FROM <Table-Name>
UNION [ALL]
SELECT * FROM <Table-Name>
Khi s d ng UNION k t qu tr v s là m t t p các giá tr không nhân b n (không trùng nhau)ử ụ ế ả ả ề ẽ ộ ậ ị ả
Khi s d ng UNION ALL k t qu tr v s là m t t p giá tr có s c t b ng t ng 2 c t đ c h p l iử ụ ế ả ả ề ẽ ộ ậ ị ố ộ ằ ổ ộ ượ ợ ạ
II: To Example
Group 5: Giao - INTERSECT:
Toán t nàyử phát sinh DATA mà đ c tho mãn trong t t c các b ng mà nó đ c miêu t . Nó đ c d a trên lý thuy t t p giao và đ c Description b iượ ả ấ ả ả ượ ả ượ ự ế ậ ượ ở
ký hi u “ệ ∩”
Group 6: Hi u - DIFFERENCE:ệ
Phép này có ký hi u “ệ -”. DATA đ c sinh ra t các b ng khác nhau mà tho mãn trong m t b ng còn b ng khác thì khôngượ ừ ả ả ộ ả ả
Group 7: N i - JOIN:ố
Phép h p đ c nâng cao t phép tích đ các. Nó cho phép l a ch n đ th c hi n nhân các b ng. (thông tin gi ng nhau thì có th k t h p đ c v i nhau)ợ ượ ừ ề ự ọ ể ự ệ ả ố ể ế ợ ượ ớ
22. Group 8: Chia - DIVIDE:
Phép chia, đ c Description b i ký t “ượ ở ự ÷”, thích h p đ truy v n mà bao g m c m t “for all”ợ ể ấ ồ ụ ừ
Part 5: SQL Language
Lesson 1: Nh ng v n đ c b n và quan tr ngữ ấ ề ơ ả ọ trong DATABASE
Group 1: Gi i thi uớ ệ
SQL là vi t t t c a Structured Query Language - Ngôn ng truy v n c u trúc.ế ắ ủ ữ ấ ấ
SQL cho phép b n truy c p vào CSDLạ ậ
SQL server đ c xây d ng trên Syntax c a SQL ANSI chu n và có ph n đ c m r ng đ c g i v i cái tên Transact-SQLượ ự ủ ẩ ầ ượ ở ộ ượ ọ ớ
SQL server h tr 3 lo i câu l nh Transact-SQL:ỗ ợ ạ ệ
1. DDL - DATA Definition Language : Ngôn ng đ nh nghĩa dataữ ị
2. DML - DATA Manipulation Language: Ngôn ng thao tác dataữ
3. CDL - Control Definition Language : Ngôn ng đi u khi n dataữ ề ể
Group 2: L u ýư
Cách s d ng kí hi u:ử ụ ệ
[ ] : đ i t ng có th xu t hi n ho c tr ngố ượ ể ấ ệ ặ ố
{ } : đ i t ng n m trong m t kh iố ượ ằ ộ ố
( ) : đ i t ng miêu t tr ngố ượ ả ườ
< > : đ i t ng b t bu cố ượ ắ ộ
M t s h th ng đ i h i có d u ch m ph y sau câu l nh SQL, d u ch m ph y “;” là cách chu n độ ố ệ ố ờ ỏ ấ ấ ẩ ệ ấ ấ ẩ ẩ ể phân cách m i câu l nh SQL trong các h th ngỗ ệ ệ ố
DATABASE cho phép nhi u h n m t câu l nh SQL đ c th c thi trong cùng m t cu c g i đ n máy ch . N u chúng ta s d ng công c MS accessề ơ ộ ệ ượ ự ộ ộ ọ ế ủ ế ử ụ ụ
ho c SQL server xxxx c a MS thì không c n d u “;”ặ ủ ầ ấ
Tr c m t giá tr là 1 chu i theo d ng unicode thì thêm 1 ch Nướ ộ ị ỗ ạ ữ
Chú thích trong T-SQL
Chú thích là các đo n văn b n di n gi i trong m t ch ng trình (đo n l nh) mà trình biên d ch s không th c thi. M c đích là đ chú gi i v mã l nh đ dạ ả ễ ả ộ ươ ạ ệ ị ẽ ự ụ ể ả ề ệ ể ễ
dàng b o trì, s a đ i m t cách d dàng.ả ử ổ ộ ễ
Chú thích trên 1 dòng:
-- [n i dung]ộ
Chú thích trên nhi u dòng:ề
/*n i dung*/ộ
23. Group 3: Cách th c thi l nh T-SQLự ệ
I: Th c thi l nh đ n lự ệ ơ ẻ
X lý t ng câu l nh là cách th ng dùng. Chúng ta có th th y đó alf l nh SELECTử ừ ệ ườ ể ấ ệ
Câu l nh SELECT là câu l nh phi th th c, nó không ch rõ ràng các b c m t cách chính xác mà DATABASE th c thi đ i v i DATA. Nói cách khác,ệ ệ ủ ụ ỉ ướ ộ ự ố ớ
server ph i phân tích câu l nh đ xác đ nh cách l y data hi u qu nh t. Quá trình này đ c g i là t i u hóa câu l nh SELECT và đ i t ng th cả ệ ể ị ấ ệ ả ấ ượ ọ ố ư ệ ố ượ ự
hi n t i u này đ c g i là b t i u truy v nệ ố ư ượ ọ ộ ố ư ấ
To Example:
SELECT * FROM Employee
II: X lý lôử
M t lô là m t t p h p c a m t ho c nhi u câu l nh Transact-SQL đ c g i cùng m t th i đi m t m t ng d ng đ n SQL Server đ th c thiộ ộ ậ ợ ủ ộ ặ ề ệ ượ ử ộ ờ ể ừ ộ ứ ụ ế ể ự
Các câu l nh này đ c biên d ch thành m t đ n v th c thi và đ c g i làệ ượ ị ộ ơ ị ự ượ ọ “execution plan”
Các câu l nh trongệ “execution plan” đ c th c hi n cùng m t lúcượ ự ệ ộ
To Example:
USE adventureworks
GO
SELECT * FROM Employee
GO
III: Th c thi d i d ng scriptự ướ ạ
SQL có th th c thi d i d ng t p tin đ c l u tr trong file. Ph n m r ng c a file th ng đ c l u d i d ng *.sql. T p tin s đ c đ c tr c khiể ự ướ ạ ệ ượ ư ữ ầ ở ộ ủ ườ ượ ư ướ ạ ậ ẽ ượ ọ ướ
đ c yêu c u th c thi. V i đi u ki n d ng trong script ph i là ki u x lý lô.ượ ầ ự ớ ề ệ ạ ả ể ử
Group 4: Toàn v n dataẹ
I: N i dungộ
Trong Toàn v n data chúng ta c n n m nh ng ki n th c sau:ẹ ầ ắ ữ ế ứ
Toàn v n d li u (Data Intergrity)ẹ ữ ệ
Đ nh nghĩa và mô t toàn v n d li u.ị ả ẹ ữ ệ
Li t kê các qui t c cho toàn v n d li uệ ắ ẹ ữ ệ
Cách th c thi toàn v n d li u.ự ẹ ữ ệ
24. Các lo i toàn v n d li u (Type of the Integrity)ạ ẹ ữ ệ
Toàn v n th c th .ẹ ự ể
Toàn v n v mi n giá tr .ẹ ề ề ị
Toàn v n tham chi u.ẹ ế
Toàn v n do ng i dùng đ nh nghĩa.ẹ ườ ị
Các ràng bu c toàn v n (Integrity Constrains)ộ ẹ
S c n thi t c a ràng bu c toàn v n.ự ầ ế ủ ộ ẹ
Ràng bu c UNIQUE.ộ
Ràng bu c CHECK.ộ
Ràng bu c PRIMARY KEY.ộ
Ràng bu c FOREIGN KEY.ộ
II: Toàn v n d li u (Data Intergrity)ẹ ữ ệ
A: Đ nh nghĩa và mô t toàn v n d li uị ả ẹ ữ ệ
Trong Dataabase, khi data đ c l u tr ho c c p nh t các giá tr nh p vào c n ph i đ c ki m tra tính h p l và tính đúng đ nượ ư ữ ặ ậ ậ ị ậ ầ ả ượ ể ợ ệ ắ
N u có thao tác b t kỳ nh s a hay xóa nào trên data, thì s thay đ i đó c n ph i đ c ph n ánh đ n t t c các n i khác trong database có liênế ấ ư ử ự ổ ầ ả ượ ả ế ấ ả ơ
quan đ n data đó.ế
Tính toàn v n c a data có th đ c đ m b o (ensure) b ng cách đ a ra m t s các ki m tra nào đó t i lúc t o b ng ho c lúc ch nh s a b ng và sauẹ ủ ể ượ ả ả ằ ư ộ ố ể ạ ạ ả ặ ỉ ử ả
đó áp d ng nh ng ki m tra này khi qu n lý dataụ ữ ể ả
25. B: Các quy t c cho toàn v nắ ẹ
Có m t s các qui t c(rule) cho toàn v n d li u giúp đ m b o tính đúng đ n và nh t quán c a d li u. Các qui t c đó là:ộ ố ắ ẹ ữ ệ ả ả ắ ấ ủ ữ ệ ắ
Trong m t b ng không th có hai b n ghi (record) mà giá tr t t c các c t là nh nhau.ộ ả ể ả ị ở ấ ả ộ ư
Ch có các giá tr d li u h p l m i có th đ c thêm vào.ỉ ị ữ ệ ợ ệ ớ ể ượ
Tính h p l c a d li u v n ph i đ c duy trì (ợ ệ ủ ữ ệ ẫ ả ượ maintain) khi d li u đ c ch nh s a.ữ ệ ượ ỉ ử
V i các b ng có quan h v i nhau qua m t c t chung, khi thay đ i d li u trong c t chungớ ả ệ ớ ộ ộ ổ ữ ệ ộ (common) b ng này nên đ c ph n ánh phù h p t iở ả ượ ả ợ ớ
các b ng có liên quanả (relate).
Ngoài các quy t c trên thì đ i v i t ng ng d ng cho t ng t ch c c th s có nh ng quy c riêng cho d li u trong CSDL. Nh ng quy c nàyắ ố ớ ừ ứ ụ ừ ổ ứ ụ ể ẽ ữ ướ ữ ệ ữ ướ
đ c g i là các quy t c nghi p v (Business Rules). Và vi c đ m b o các quy t c nghi p v cũng chính là m t ph n c a vi c đ m b o tính toànượ ọ ắ ệ ụ ệ ả ả ắ ệ ụ ộ ầ ủ ệ ả ả
v n d li u trong CSDL.ẹ ữ ệ
C: Th c thi toàn v n d li uự ẹ ữ ệ
SQL Server 2005 h tr 4 c ch đ cho phép b n th c thi toàn v n d li uỗ ợ ơ ế ể ạ ự ẹ ữ ệ
Constraints
Constraint là các thu c tính, b n có th g n cho các c t trong b ng đ ngăn các d li u không h p l đ c nh p vào c tộ ạ ể ắ ộ ả ể ữ ệ ợ ệ ượ ậ ộ
Default values
B n có th đ nh nghĩa các giá tr cho các c t không ch p nh n giá tr null. Khi th c hi n thêm ho c s a giá tr m c đ nh s đ c chèn vào b n ghi t i cácạ ể ị ị ộ ấ ậ ị ự ệ ặ ử ị ặ ị ẽ ượ ả ạ
c t b b tr ngộ ị ỏ ố
Rules
Các Rule là các constraint có th đ c áp d ng đ đi u khi n các giá tr d li u đ c nh p vào b ng. Các rule đ c l p v i vi c đ nh nghĩa b ng và có thể ượ ụ ể ề ể ị ữ ệ ượ ậ ả ộ ậ ớ ệ ị ả ể
áp d ng cho nhi u b ng.ụ ề ả
Triggers
M t trigger trong SQL Server 2005 có ch a các đo n code t o thành các câu l nh T-SQL đ c th c thi t đ ng khi có m t s xác đ nh x y ra.ộ ứ ạ ạ ệ ượ ự ự ộ ộ ự ị ả
III: Các lo i toàn v n d li u (Data Integrity)ạ ẹ ữ ệ
S toàn v n c a d li u có th đ c phân lo i thành các nhóm sau:ự ẹ ủ ữ ệ ể ượ ạ
26. Toàn v n th c th .ẹ ự ể
Toàn v n v mi n giá tr .ẹ ề ề ị
Toàn v n tham chi u.ẹ ế
Toàn v n do ng i dùng đ nh nghĩa.ẹ ườ ị
A: Toàn v n th c th (Entity Integrity)ẹ ự ể
M i b ng trong DATABASE bi u di n cho m t th c th , trong đó m i record (b n ghi) bên trong b ng bi u di n cho m t th hi n c a th c th .ỗ ả ể ễ ộ ự ể ỗ ả ả ể ễ ộ ể ệ ủ ự ể
Toàn v n th c th đ c đ m b o b i:ẹ ự ể ượ ả ả ở
Ràng bu cộ PRIMARY KEY.
C t có ràng bu c PRIMARY KEY s không cho phép chèn vào giá tr null ho c giá tr trùng v i các giá tr đã có.ộ ộ ẽ ị ặ ị ớ ị
Ràng bu cộ UNIQUE.
C t có ràng bu c UNIQUE s không cho phép nh p vào giá tr trùng nhau và cho phép nh p vào m t giá tr null m t l n.ộ ộ ẽ ậ ị ậ ộ ị ộ ầ
Indexes.
Indexes có th đ c dùng đ ngăn c n nh p giá tr trùng nhau vào m t c t đ đ m b o tính duy nh t c a các giá tr .ể ượ ể ả ậ ị ộ ộ ể ả ả ấ ủ ị
Thu c tínhộ IDENTITY.
Thu c tính IDENTTITY đ c đ nh nghĩa cho m t c t đ nh danh trong b ng. C t đ nh danh là c t có ch a các giá tr tu n t do h th ng phát sinh m i khiộ ượ ị ộ ộ ị ả ộ ị ộ ứ ị ầ ự ệ ố ỗ
m t record đ c thêm vào. T t các giá tr trong c t này là duy nh t.ộ ượ ấ ị ộ ấ
B: Toàn v n mi n giá tr (Domain Integrity)ẹ ề ị
M t mi n là m t t p h p các giá tr t o ra nh ng giá tr h p l trong m t c t.ộ ề ộ ậ ợ ị ạ ữ ị ợ ệ ộ ộ
Đ đ m b o s toàn v n v mi n, t t c các giá tr d li u trong b ng nên thu c v mi n đã xác đ nh.ể ả ả ự ẹ ề ề ấ ả ị ữ ệ ả ộ ề ề ị
27. Trong SQL Server 2005, s d ng các ràng bu c sau đ đ m b o tính toàn v n v mi n giá tr :ử ụ ộ ể ả ả ẹ ề ề ị
FOREIGN KEY constraint.
Giá tr cho c t FOREIGN KEY ho c có th là null ho c có th là m t giá tr t n t i trong c t UNIQUE ho c c t PRIMARY KEY mà c t có tham chi u đ n.ị ộ ặ ể ặ ể ộ ị ồ ạ ộ ặ ộ ộ ế ế
CHECK constraint.
Ràng bu c CHECK ch ra m t mi n giá tr h p l có th đ c nh p vào cho c t.ộ ỉ ộ ề ị ợ ệ ể ượ ậ ộ
DEFAULT definition.
Ràng bu c DEFAULT ch ra các giá tr cho nh ng c t không ch p nh n giá tr null. Giá tr m c đ nh đ c t đ ng gán cho c t khi c t đó b b tr ng.ộ ỉ ị ữ ộ ấ ậ ị ị ặ ị ượ ự ộ ộ ộ ị ỏ ố
NOT NULL definition.
NOT NULL ch ra r ng c t đó không ch p nh n giá tr NULL (không đ c đ tr ng)ỉ ằ ộ ấ ậ ị ượ ể ố
Data Types.
Ki u d li u h p l đã đ c xác đ nh cho nhi u c t khác nhau. Ví d : Khi c t đ c đ nh nghĩa có ki u d li u là date thì ch ch p nh n các giá tr ki u date.ể ữ ệ ợ ệ ượ ị ề ộ ụ ộ ượ ị ể ữ ệ ỉ ấ ậ ị ể
Rules.
Rule là các ràng bu c xác đ nh mi n ho c d ng giá tr h p l cho m t c t. Rule có th đ nh nghĩa đ c l p sau đó áp d ng cho nhi u b ng.ộ ị ề ặ ạ ị ợ ệ ộ ộ ể ị ộ ậ ụ ề ả
C: Toàn v n tham chi u (Referential Integrity)ẹ ế
Toàn v n tham chi u đ m b o tính nh t quán d li u gi a các b ng có liên quan v i nhau thông qua tr ng chungẹ ế ả ả ấ ữ ệ ữ ả ớ ườ
28. S d ng khóa ngo i (FOREIGN KEY) đ th c hi n toàn v n tham chi u.ử ụ ạ ể ự ệ ẹ ế
Tính toàn v n tham chi u đ c đ m b o b i các qui t c sau:ẹ ế ượ ả ả ở ắ
Các giá tr chèn vào c t khóa ngo i FOREIGN KEY là nh ng giá tr b t bu c ph i có t n t i c t UNIQUE ho c PRIMARY KEY b ng tham chi u.ị ộ ạ ữ ị ắ ộ ả ồ ạ ộ ặ ở ả ế
N u giá tr trong c t UNIQUE ho c PRIMARY KEY đ c s a đ i, thì s thay đ i t ng t cũng đ c th c hi n trên c t khóa ngo i (FOREIGNế ị ộ ặ ượ ử ổ ự ổ ươ ự ượ ự ệ ộ ạ
KEY).
N u m t giá tr trong c t UNIQUE ho c PRIMARY KEY b xóa b , s xóa b cũng nên đ c th c hi n trong các c t khóa ngo i (FOREIGN KEY).ế ộ ị ộ ặ ị ỏ ự ỏ ượ ự ệ ộ ạ
D: Toàn v n do ng i d ng đ nh nghĩa (User-Defined Integrity)ẹ ườ ừ ị
Các ràng bu c toàn v n có s n trong SQL Server 2005 v n ch a đ đ đ m b o các giá tr d li u là đúng theo d ng (format) ho c mi n theo mongộ ẹ ẵ ẫ ư ủ ể ả ả ị ữ ệ ạ ặ ề
mu n. Do đó các ràng bu c do ng i dùng đ nh nghĩa có th đ c áp d ng cho các c t đ duy trì tính toàn v n d li u.ố ộ ườ ị ể ượ ụ ộ ể ẹ ữ ệ
Ví d : S đi n tho i yêu c u ph i có d ng nh (123) 456-789. Nh v y có th t o ki u d li u do ng i dùng đ nh nghĩa đ nh n vào giá tr theo d ngụ ố ệ ạ ầ ả ạ ư ư ậ ể ạ ể ữ ệ ườ ị ể ậ ị ạ
này.
IV: Các ràng bu c toàn v n (Integrity Constrains)ộ ẹ
Các ràng bu c đ c s d ng đ đ m b o tính h p l c a d li u trong m t b ng và đ m b o tính nh t quán d li u gi a các b ng liên quan.ộ ượ ử ụ ể ả ả ợ ệ ủ ữ ệ ộ ả ả ả ấ ữ ệ ữ ả
B n có th đ nh nghĩa các ràng bu c cho c t ho c cho b ng.ạ ể ị ộ ộ ặ ả
29. A: R ng bu c PRIMARY KEYằ ộ
M c đích c a c t khóa chính (PRIMARY KEY) là đ xác đ nh tính duy nh t c a m i record có trong b ng.ụ ủ ộ ể ị ấ ủ ỗ ả
Ràng bu c PRIMARY KEY ki m tra s duy nh t c a d li u trong c t khóa chính, không cho đ a vào các giá tr trùng nhau.ộ ể ự ấ ủ ữ ệ ộ ư ị
M t PRIMARY KEY có th là m t c t ho c là s k t h p c a nhi u c tộ ể ộ ộ ặ ự ế ợ ủ ề ộ
Ràng bu c PRIMARY KEY có th đ c ch ra bên trong câu l nh CREATE TABLE ho c ALTER TABLEộ ể ượ ỉ ệ ặ
Cú pháp
CREATE TABLE <Table-Name>
(
<Field-Name> <Data-Type> PRIMARY KEY,
)
Ví d : T o khóa chính cho tr ng ClienID trong b ng Client_Infoụ ạ ườ ả
CREATE TABLE < Client_Info >
(
ClientID varchar(5) PRIMARY KEY,
DOB datetime,
Country varchar(30),
)
Minh h aọ
30. B: R ng bu c FOREIGN KEYằ ộ
Các tùy ch n cascading đ c đ nh nghĩa cùng v i vi c t o ràng bu c khóa ngo i đ đ m b o tính nh t quán d li u gi a các b ng liênọ ượ ị ớ ệ ạ ộ ạ ể ả ả ấ ữ ệ ữ ả quan khi
th c hi n thay đ i trên c t PRIMARY KEY ho c UNIQUE.ự ệ ổ ộ ặ
Có hai tùy ch n cascadeọ :
ON UPDATE [ NO ACTION | CASCADE ]: Ch cho SQL SERVER cách thi hành khi có hành đ ng c p nh t x y ra trên c t PRIMARY KEY ho c UNIQUEỉ ộ ậ ậ ả ộ ặ
c a b ng tham chi u.ủ ả ế
NO ACTION: Báo l i khi bên c t khóa ngo i có các giá tr có liên quan t i giá tr b s a trong c t PRIMARY KEY ho c UNIQUE.ỗ ộ ạ ị ớ ị ị ử ộ ặ
CASCADE: Khi c p nh t giá tr c t PRIMARY KEY ho c UNIQUE, các giá tr trong c t khóa ngo i có liên cũng đ c c p nh t theo.ậ ậ ị ở ộ ặ ị ộ ạ ượ ậ ậ
ON DELETE [ NO ACTION | CASCADE ]: Ch cho SQL SERVER cách thi hành khi có hành đ ng xóa x y ra trên c t PRIMARY KEY ho c UNIQUE c aỉ ộ ả ộ ặ ủ
b ng tham chi u.ả ế
NO ACTION: Thông báo l i s x y ra trong tr ng h p m i quan h gi a hai b ng cha – con có d li uỗ ẽ ả ườ ợ ố ệ ữ ả ữ ệ
CASCADE: N u ch đ nh CASCADE thì khi xoá m t dòng d li u trên b ng cha thì các dòng d li u liên quan trên b ng con cũng s b xoá.ế ỉ ị ộ ữ ệ ả ữ ệ ả ẽ ị
Cú pháp
CREATE TABLE <Table-Name>
(
<Field-Name> <Data-Type> PRIMARY KEY,
)
CREATE TABLE <Table-Name>
(
<Field-Name> <Data-Type>
FOREIGN KEY REFERENCES <Referenced-Table-Name> (Referenced-Field-Name) [ON UPDATE CASCADE] [ON DELETE CASCADE],
)
Ví dụ
CREATE TABLE <Employee_Details>
(
31. Employee_ID PRIMARY KEY,
Employee_Name varchar(30),
Salary float,
)
CREATE TABLE <Payroll>
(
Employee_ID varchar(5) PRIMARY KEY,
Salary float
FOREIGN KEY REFERENCES Employee_Details(Salary) ON UPDATE CASCADE ON DELETE CASCADE,
)
Minh h aọ
C: R ng bu c UNIQUEằ ộ
Ràng bu c UNIQUE có th áp d ng cho m t c t ho c cho k t h p nhi u c t đ đ m b o tính duy nh t c a d li u trong nh ng c t này.ộ ể ụ ộ ộ ặ ế ợ ề ộ ể ả ả ấ ủ ữ ệ ữ ộ
Ràng bu c UNIQUE đ m b o tính toàn v n th c th trong b ng.ộ ả ả ẹ ự ể ả
Ràng bu c UNIQUE có th đ c đ nh nghĩa bên trong câu l nh CREATE TABLE ho c ALTER TABLE.ộ ể ượ ị ệ ặ
Trong m t b ng có th có nhi u ràng bu c UNIQUE cho nhi u c t.ộ ả ể ề ộ ề ộ
Chú ý: V i c t áp d ng ràng bu c UNIQUE, Giá tr null ch đ c phép nh p vào m t l n.ớ ộ ụ ộ ị ỉ ượ ậ ộ ầ
Cú pháp
CREATE TABLE <Table-Name>
(
<Field-Name> <Data-Type> UNIQUE,
32. )
Ví d :ụ T o ràng bu c UNIQUE cho c t TransNumber c a b ng Account_Transactionsạ ộ ộ ủ ả
CREATE TABLE <Table-Name>
(
Date datetime,
TransNumber int UNIQUE,
)
Minh h aọ
D: R ng bu c CHECKằ ộ
Ràng bu c CHECK xác đ nh m t mi n giá tr nh p vào cho c t.ộ ị ộ ề ị ậ ộ
Ràng bu c CHECK đ c t o v i bi u th c logic (là bi u th c có giá tr tr v True hay False) đ ki m tra giá tr nh p vào.ộ ượ ạ ớ ể ứ ể ứ ị ả ề ể ể ị ậ
B n có th áp d ng m t ràng bu c CHECK t i m t nhóm các c t.ạ ể ụ ộ ộ ớ ộ ộ
Cú pháp
CREATE TABLE <Table-Name>
(
<Colun-Name> <Data-Type> CHECK(condition),
)
Ví dụ
CREATE TABLE <Account_Types>
(
AccTypeID int identity,
AccNo int CHECK(AccNo>0 and AccNo<100000)
)
Minh h aọ
33. Lesson 2: Index
I: N i dungộ
Trong index có nh ng v n đ sau:ữ ấ ề
Đ nh nghĩa và mô t ch m c (index)ị ả ỉ ụ
Mô t d li u đ c l u tr nh th nào trong SQL Server 2005.ả ữ ệ ượ ư ữ ư ế
S c n thi t c a index.ự ầ ế ủ
Index c n thi t đ c dùng đâu.ầ ế ượ ở
Ki n trúc Indexế
Tìm ki m dòng (Finding Rows)ế
II: Gi i thi u Indexớ ệ
A: D li u đ c mô t trong SQL server 2005ữ ệ ượ ả
Các Index đ c t o đ cho vi c l y d li u đ c nhanh h n.ượ ạ ể ệ ấ ữ ệ ượ ơ
D li u đ c s p x p, truy c p s d dàng h n d li u không đ c s p x p.ữ ệ ượ ắ ế ậ ẽ ễ ơ ữ ệ ượ ắ ế
Truy v n trên các b ng có index đ c th c thi nhanh h n và ít chi m tài nguyên h th ng h n.ấ ả ượ ự ơ ế ệ ố ơ
34. Các index database có ch a m t danh sách các giá tr (g i là các khóa) l y t m t ho c nhi u c t c a b ng và các đ a ch c a các trang d li u (g i làứ ộ ị ọ ấ ừ ộ ặ ề ộ ủ ả ị ỉ ủ ữ ệ ọ
các con tr ) cho bi t v trí d li u đ c l u tr .ỏ ế ị ữ ệ ượ ư ữ
Trang (page) là đ n v l u tr d li u nh nh t trong SQL Server 2005. Các trang này ch a d li u theo t ng dòng.ơ ị ư ữ ữ ệ ỏ ấ ứ ữ ệ ừ
Kích th c m i page là 8 KB (1MB có 128 page). Trong đó 96 byte đ u tiên c a page (page header) l u tr các thông tin h th ng v page nh :ướ ỗ ầ ủ ư ữ ệ ố ề ư
S trangố
Lo i trang (data, Index, text/image,..)ạ
Không gian còn tr ng trên trangố
Ch s ID c a trangỉ ố ủ
Các t p tin d li u (Data Files)ậ ữ ệ
T p tin d li u c a m t database đ c phân chia logic thành các page và đ c đánh s liên t c t 0 đ n n. B máy database c a SQL Server th cậ ữ ệ ủ ộ ượ ượ ố ụ ừ ế ộ ủ ự
hi n đ c ghi d li u trên các page này.ệ ọ ữ ệ
SQL Server 2005 có ba lo i t p tin sau:ạ ậ
Primary Data Files (*.mdf)
Secondary Data Files (*.ndf)
Log Files (*.ldf)
B: S c n thi t c a indexự ầ ế ủ
SQL Server 2005 cung c p tính năng đánh index giúp cho vi c l y d li u d dàng và nhanh chóng.ấ ệ ấ ữ ệ ễ
M t index trong database SQL Server 2005 mang các thông tin đ chúng ta có th tìm th y d li u mà không c n ph i duy t qua toàn b b ng.ộ ể ể ấ ữ ệ ầ ả ệ ộ ả
35. Index gi ng nh b ng m c l c c a m t cu n sách. B n tìm ch đ mà b n quan tâm trong b ng m c l c và sau đó chuy n th ng đ n ch đ đóố ư ả ụ ụ ủ ộ ố ạ ủ ề ạ ả ụ ụ ể ẳ ế ủ ề
thông qua s trang đã cho.ố
Các record trong m t b ng đ c l u tr theo th t mà chúng đ c nh p vào. Vi c l u tr trong database nh v y là không đ c s p x p.ộ ả ượ ư ữ ứ ự ượ ậ ệ ư ữ ư ậ ượ ắ ế
Khi l y d li u trong các b ng nh v y, c n ph i duy t qua toàn b b ng. Đi u đó làm cho t c đ x lý truy v n l y d li u b ch m xu ng. V y cácấ ữ ệ ả ư ậ ầ ả ệ ộ ả ề ố ộ ử ấ ấ ữ ệ ị ậ ố ậ
index đ c t o đ tăng t c đ truy v n l y d li u.ượ ạ ể ố ộ ấ ấ ữ ệ
Khi có m t index đ c t o cho b ng, index này s t o ra m t th t cho các dòng d li u có trong b ng. Đi u này giúp cho vi c xác đ nh v trí và l yộ ượ ạ ả ẽ ạ ộ ứ ự ữ ệ ả ề ệ ị ị ấ
d li u trong quá trình tìm ki m đ c nhanh h n.ữ ệ ế ượ ơ
M t b ng có th có nhi u indexộ ả ể ề
C: T o index nh th nào cho h p lýạ ư ế ợ
Th i đi m t o indexờ ể ạ
Hãy t ng t ng v m t quy n t đi n, các t trong quy n t đi n đó không đ c s p x p theo b ng ch cái, và b n mu n tra c u m t tưở ượ ề ộ ể ừ ể ừ ề ừ ể ượ ắ ế ả ữ ạ ố ứ ộ ừ
trong quy n t đi n đó (đi u đó quá khó)ể ừ ể ề
M t b ng trong database có m t kh i l ng l n các dòng d li u th ng xuyên đ c truy xu t. Các dòng d li u c n đ c s p x p đ cho vi cộ ả ộ ố ượ ớ ữ ệ ườ ượ ấ ữ ệ ầ ượ ắ ế ể ệ
l y d li u là nhanh nh t. Do đó vi c t o index (v t lý hay logic s p x p các record) cho m t b ng giúp cho vi c tìm ki m m t dòng d li u trấ ữ ệ ấ ệ ạ ậ ắ ế ộ ả ệ ế ộ ữ ệ ở
nên nhanh h n và ít chi m tài nguyên h th ng h n.ơ ế ệ ố ơ
36. Tránh l m d ng indexạ ụ
Các ch m c giúp cho vi c l y d li u đ c nhanh h n nh ng chúng cũng làm tiêu t n không gian đĩa và cũng c n ph i đ c duy trìỉ ụ ệ ấ ữ ệ ượ ơ ư ố ầ ả ượ (maintain).
Ch m c không c n thi t ph i t o khi:ỉ ụ ầ ế ả ạ
Ch m c không đ c s d ng th ng xuyên.ỉ ụ ượ ử ụ ườ
Không t o ch m c trên các c t có d li u trùng nhau.ạ ỉ ụ ộ ữ ệ
III: Ki n trúc Indexế
Trong SQL Server, các ch m c đ c t ch c gi ng nh các cây nh phân (B-tree).ỉ ụ ượ ổ ứ ố ư ị
M i trang trong cây ch m c index B-tree đ c g i là nút ch m c (index node)ỗ ỉ ụ ượ ọ ỉ ụ
Nút cao nh t c a cây g iấ ủ ọ
là nút g c (ố root node)
Nút g c và nút trung gian có ch a m t trang chố ứ ộ ỉ
m c (index page) n m gi các ch m c dòngụ ắ ữ ỉ ụ
(index row).
M i Ch m c dòng có ch a m t giá tr khóa vàỗ ỉ ụ ứ ộ ị
m t con tr tr t i m t nút trung gian khác,ộ ỏ ỏ ớ ộ
ho c tr t i m t dòng d li u trong nút láặ ỏ ớ ộ ữ ệ
Nút b t kỳ n m gi a nútấ ằ ữ
lá và nút g c g i là nútố ọ
m c trung gianứ
(intermediate node)
37. Nút m c th p nh t g iở ứ ấ ấ ọ
là nút lá (leaf node)
Nút lá có th là m t trang d li u (data page)ể ộ ữ ệ
ho c cũng có th là trang ch m c (index page)ặ ể ỉ ụ
ch a các ch m c tr t i các dòng d li u.ứ ỉ ụ ỏ ớ ữ ệ
A: Phân vùng (Partition)
Phân vùng là k thu t phân chia logic b ng ho c index thành m t ho c nhi u phân vùng(partition) nh m qu n lý hi u qu c s d li u v iỹ ậ ả ặ ộ ặ ề ằ ả ệ ả ơ ở ữ ệ ớ
dung l ng l n.ượ ớ
M i phân vùng ch a các dòng d li u đ c t ch c theo c u trúc heap ho c c u trúc clustered index.ỗ ứ ữ ệ ượ ổ ứ ấ ặ ấ
Phân vùng cho phép truy xu t d li u nhanh chóng và hi u qu , do thao tác qu n lý ch th c hi n trên t p con d li u thay vì trên toàn bấ ữ ệ ệ ả ả ỉ ự ệ ậ ữ ệ ộ
b ng.ả
Đ t ch c các trang d li u trong m t phân vùng (partition), b ng c a SQL Server s d ng m t trong hai ph ng th c sau:ể ổ ứ ữ ệ ộ ả ủ ử ụ ộ ươ ứ
N u b ng có m t clustered index thì b ng đ c g i là b ng clustered (clustered table). Các dòng d li u c a b ng đ c s pế ả ộ ả ượ ọ ả ữ ệ ủ ả ượ ắ x p theo th tế ứ ự
d a trên khóa clusteredự index.
N u b ng không có m t clustered index, thì b ng đó đ c g i là m t heap. Các dòng d li u không đ c s p x p theo th t nào c .ế ả ộ ả ượ ọ ộ ữ ệ ượ ắ ế ứ ự ả
38. B: sys.partitions (view)
“sys.partitions” (view) là m t view h th ng ch a m t dòng cho m i phân đo n c a các b ng các lo i index trong database.ộ ệ ố ứ ộ ỗ ạ ủ ả ạ
M t s index đ c bi t nh Fulltext, Spatial, và XML không có trong view này.ộ ố ặ ệ ư
T t c các b ng và index trong SQL Server 2005 đ u có ít nh t m t phân vùng.ấ ả ả ề ấ ộ
B ng mô t các c t khác nhau c a view “sys.partitions”ả ả ộ ủ
Tên c tộ Ki u d li uể ữ ệ Mô tả
partition_id bigint Ch a ID c a phân vùng và là duy nh t trong databaseứ ủ ấ
object_id int Ch a ID c a đ i t ng mà phân vùng này thu c vứ ủ ố ượ ộ ề
index_id int ID c a ch s trong đ i t ng đ mà phân đo n này thu c v .ủ ỉ ố ố ượ ể ạ ộ ề
partition_number int Có ch a s phân vùng trong index ho c heap s h uứ ố ặ ở ữ
hobt_id bigint Ch a ID d li u c a heap ho c B-tree mà có ch a các dòng cho phân vùng này.ứ ữ ệ ủ ặ ứ
rows bigint Ch ra g n đúng s dòng có trong phân vùngỉ ầ ố
Giá tr c a c t index_id:ị ủ ộ
Cho m t heap là 0.ộ
Cho m t cluestered index là 1.ộ
Cho m t nonclustered index là l n h n 1.ộ ớ ơ
Cho các đ i t ng l n(LOB) là l n h n 250.ố ượ ớ ớ ơ
C: Đ n v c p phát (Allocation Unit)ơ ị ấ
M t đ n v c p phát là m t t p h p các trang n m trong m t heap ho c B-tree, đ c s d ng đ qu n lý d li u d a trên ki u trang c a chúng.ộ ơ ị ấ ộ ậ ợ ằ ộ ặ ượ ử ụ ể ả ữ ệ ự ể ủ
Sau đây là các ki u đ n v c p phát đ c s d ng đ qu n lý d li u trong các b ng và index.ể ơ ị ấ ượ ử ụ ể ả ữ ệ ả
IN_ROW_DATA
39. Đ c dùng đ qu n lý d li u ho c các dòng ch m c mà có ch a t t c các lo i d li u ngo i tr đ i t ng d li u l n (LOB).ượ ể ả ữ ệ ặ ỉ ụ ứ ấ ả ạ ữ ệ ạ ừ ố ượ ữ ệ ớ
LOB_DATA
Đ c dùng đ qu n lý các đ i t ng d li u l n (LOB) nh varbinary(max), varchar(max) , và xml.ượ ể ả ố ượ ữ ệ ớ ư
ROW_OVERFLOW_DATA
Đ c dùng đ qu n lý d li u có đ dài bi n đ i nh d li u có ki u varchar, nvarchar, varbinary, ho c sql_variantượ ể ả ữ ệ ộ ế ổ ư ữ ệ ể ặ
D: C u trúc Heap(đ ng)ấ ố
Khi t o ra m t b ng mà ch a có b t kì r ng bu c v toàn v n th c th nào thì b ng đó là m t c u trúc Heapạ ộ ả ư ấ ằ ộ ề ẹ ự ể ả ộ ấ
Trong c u trúc heap, các trang d li u và các dòng d li u không đ c s p x p theo th t c th nào.ấ ữ ệ ữ ệ ượ ắ ế ứ ự ụ ể
Các dòng và các trang d li u không liên k tữ ệ ế (link) v i nhau mà ch đ c k t n iớ ỉ ượ ế ố (connenction) lu n lý (logical) qua thông tin đ c ghi trong cácậ ượ
trang IAM (Index Allocation Map - B n đ c p phát ch m c)ả ồ ấ ỉ ụ
SQL Server 2005 s d ng các trang IAM đ duy t m t c u trúc heap.ử ụ ể ệ ộ ấ
B n có th đ c m t heap b ng cách duy t các trang IAM đ tìm các extentạ ể ọ ộ ằ ệ ể (đ l n, kích th c)ộ ớ ướ có ch a nh ng trang cho heap đó.ứ ữ
40. S phân vùng c a c u trúc heap (…)ự ủ ấ
M c đ nh, m i heap ch có m t phân vùng.ặ ị ỗ ỉ ộ
Khi các phân vùng đ c t o cho m t b ng có c u trúc heap, m i phân vùng s ch a d li u trong m t c u trúc heap riêng bi t.ượ ạ ộ ả ấ ỗ ẽ ứ ữ ệ ộ ấ ệ
Ví d n u m t heap có 4 phân đo n, thì có 4 c u trúc heap, m i c u trúc cho m i phân vùng.ụ ế ộ ạ ấ ỗ ấ ỗ
E: C u trúc Clusted Indexấ
Khi t o ra m t b ng đ ng th i t o ra ít nh t m t r ng bu c b t kì v th c th thì b ng đó thu c c u trúc clusted indexạ ộ ả ồ ờ ạ ấ ộ ằ ộ ấ ề ự ể ả ộ ấ
M t clustered index xác đ nh th t s p x p v t lý c a d li u trong m t b ng khi l u tr .ộ ị ứ ự ắ ế ậ ủ ữ ệ ộ ả ư ữ
M t b ng có th có ch m t ch m c clustered.ộ ả ể ỉ ộ ỉ ụ
Kích th c c a m t clustered index kho ng 5% kich th c c a b ng.ướ ủ ộ ả ướ ủ ả
Tr c khi t o clustered index, b n c n ph i đ m b o h th ng c a mình còn không gian tr ng t i thi u g p 1,2 l n so v i d li u trong b ng.ướ ạ ạ ầ ả ả ả ệ ố ủ ố ố ể ấ ầ ớ ữ ệ ả
Clustered index là m t cây nh phân (B-tree)ộ ị
41. Trong clustered index, nút lá ch a các dòng d li u trong b ng.ứ ữ ệ ả
Nguyên t c (Guidelines) t o clusteredắ ạ index
M c đ nh, khi đ nh nghĩa khóa chính cho b ng, m t clustered index đ c t đ ng t o ra cho b ng đó.ặ ị ị ả ộ ượ ự ộ ạ ả
N u b ng không có khóa chính, thì clustered index nên đ c đ nh nghĩa trên:ế ả ượ ị
Các c t khóa m r ng th ng đ c dùng cho vi c tìm ki m.ộ ở ộ ườ ượ ệ ế
C t đ c s d ng trong các truy v n tr v k t qu t p h p l n.ộ ượ ử ụ ấ ả ề ế ả ậ ợ ớ
Các c t mà d li u ít trùng nhau.ộ ữ ệ
Các c t đ c dùng đ n i hai b ng.ộ ượ ể ố ả
F: C u trúc Nonclustered indexấ
M t non-clustered index xác đ nh cách s p x p logic c a b ng.ộ ị ắ ế ủ ả
Non-clustered index gi ng nh b ng m c l c trong m t cu n sách giáo khoa. M i dòng ch s (index row) trong non-clustered index có ch a m t giáố ư ả ụ ụ ộ ố ỗ ỉ ố ứ ộ
tr khóa và m t v trí dòng. V trí dòng này tr t i dòng d li u t ng ng v i giá tr khóa trong b ng.ị ộ ị ị ỏ ớ ữ ệ ươ ứ ớ ị ả
Nonclustered index có c u trúc B-tree gi ng nh clustered index, nh ng có m t s s khác bi t sau:ấ ố ư ư ộ ố ự ệ
Th t v t lý các dòng d li u trong b ng không l u tr theo th t đ c qui đ nh trong khóa nonclustered.ứ ự ậ ữ ệ ả ư ữ ứ ự ượ ị
Trong c u trúc nonclustered index, các nút m c lá ch a các dòng ch m c (index row).ấ ứ ứ ỉ ụ
42. Nonlustered index đ c s d ng khi b n mu n m r ng thêm nhi u cách t́m ki m d li u khác nhau.ượ ử ụ ạ ố ở ộ ề ế ữ ệ
Tr c khi t o, c n xem xét m t s các nguyên t c sau:ướ ạ ầ ộ ố ắ
Khi m t clustered index đ c t o l i ho c tùy ch n DROP_EXISTING đ c s d ng, SQL Server xây d ng l i các nonclustered index.ộ ượ ạ ạ ặ ọ ượ ử ụ ự ạ
M t b ng có th t o t i 249 nonclustered index.ộ ả ể ạ ớ
T o clustered index tr c khi t o nonclustered index, làm nh v y đ không ph i xây d ng l i nonclustered index khi t o m t clustered index.ạ ướ ạ ư ậ ể ả ự ạ ạ ộ
G: So sánh s khác nhau gi a clustered index và nonclustered indexự ữ
Clustered Index Nonclustered Index
S d ng cho các truy v n tr v các t p k t qu l nử ụ ấ ả ề ậ ế ả ớ S d ng cho các truy v n không tr v các t p k t qu l nử ụ ấ ả ề ậ ế ả ớ
Ch có th t o m t clustered index cho m t b ngỉ ể ạ ộ ộ ả Có th t o nhi u nonclustered index cho b ngể ạ ề ả
D li u đ c s p x p theo th t trên khóa clusteredữ ệ ượ ắ ế ứ ự D li u không đ c s p x p theo th t trên khóa nonclusteredữ ệ ượ ắ ế ứ ự
Các nút lá c a m t clustered index có ch a các trang d li u (data page).ủ ộ ứ ữ ệ Các nút lá c a m t nonclustered index có ch a các trang ch m c(indexủ ộ ứ ỉ ụ
page).
H: Các lo i Indexạ
43. Có hai lo i c u trúc index đ c h tr trong SQL Server:ạ ấ ượ ỗ ợ
Clustered index:
Clustered index l u tr d li u theo ki u s p x p.ư ữ ữ ệ ể ắ ế
Nó th c thi nh m t c u index B-tree.ự ư ộ ấ
M t b ng ch có th có m t clustered index vì clustered index xác đ nh th t l u tr v t lý c a d li u.ộ ả ỉ ể ộ ị ứ ự ư ữ ậ ủ ữ ệ
Nonclustered index:
Nonclustered index không s p x p l i th t v t lý c a d li u, chúng ch t o các con tr tr v trí v t lý c a các dòng d li u.ắ ế ạ ứ ự ậ ủ ữ ệ ỉ ạ ỏ ỏ ị ậ ủ ữ ệ
SQL Server 2005 h tr t i 249 nonclustered cho m t b ng.ỗ ợ ớ ộ ả
D a vào đ c đi m c a index có các lo i index sau:ự ặ ể ủ ạ
Unique index. Unique index có th đ c đ nh nghĩa trên m t c t có ch a giá tr không trùng nhau.ể ượ ị ộ ộ ứ ị
- N u b ng có m t PRIMARY KEY, m t unique clustered index đ c đ nh nghĩa t đ ng trên c t đó.ế ả ộ ộ ượ ị ự ộ ộ
- N u b ng có m t c t v i ràng bu c UNIQUE, m t unique nonclustered index đ c t đ ng t o trên c t đóế ả ộ ộ ớ ộ ộ ượ ự ộ ạ ộ
N u mu n t o m t clustered index trên c t khác thì khi t o b ng ta không t o PRIMARY KEY tr c, sau khi t o clusteredế ố ạ ộ ộ ạ ả ạ ướ ạ
index r i thêm PRIMARY KEY vào sauồ
Composite index. Composite index (index k t h p) là m t index đ c t o trên hai hay nhi u c t. C clustered index và nonclustered index đ uế ợ ộ ượ ạ ề ộ ả ề
có th là composite indexể
Full-Text index. Tính năng Full-Text index trong SQL Server 2005 cho phép th c hi n các truy v n ph c t p trên d li u kí t . S d ng tínhự ệ ấ ứ ạ ữ ệ ự ử ụ
năng Full-Text index, vi c tìm ki m có th th c hi n trên t ng t riêng bi t, c m t , đo n văn, m t ph n c a t , ho c bi nệ ế ể ự ệ ừ ừ ệ ụ ừ ạ ộ ầ ủ ừ ặ ế
th c a t (drunk bi n th c a drink)ể ủ ừ ế ể ủ
XML index. SQL Server 2005 cũng h tr m t lo i index đ c bi t cho d li u XML.ỗ ợ ộ ạ ặ ệ ữ ệ Index này đ c xem nh là m t index XML. Cluseredượ ư ộ
index và nonclustered index đ u có th t o trên c t d li u XML. Ki u d li u này đ c s d ng đ l u tr các tài li u XMLề ể ạ ộ ữ ệ ể ữ ệ ượ ử ụ ể ư ữ ệ
và các đo n XML. M t đo n XML là th hi n c a m t XML thi u ph n t m c đ nh.Do các c t XML có kích th c l n, truyạ ộ ạ ể ệ ủ ộ ế ầ ử ứ ỉ ộ ướ ớ
v n tìm ki m d li u trong các c t này có th s ch m. B n có th tăng t c đ truy v n trên các c t này b ng vi c t o m tấ ế ữ ệ ộ ể ẽ ậ ạ ể ố ộ ấ ộ ằ ệ ạ ộ
XML index cho m i c t.ỗ ộ
Có hai lo i XML indexạ
- XML Index s c p (primary XML Index): đ c t o cho m i c t XML đ tăng t c đ truy v n trên nh ng c t này.ơ ấ ượ ạ ỗ ộ ể ố ộ ấ ữ ộ
44. - XML index th c p (secondary XML Index): đ c dùng đ :ứ ấ ượ ể
Tìm ki m các giá tr v trí b t kỳ trong tài li u XML.ế ị ở ị ấ ệ
L y các thu c tính c a đ i t ng c th trong tài li u XML.ấ ộ ủ ố ượ ụ ể ệ
XML index th c p ch có th t o trên các c t đã có XML index s c p.ứ ấ ỉ ể ạ ộ ơ ấ
I: Thao tác INDEX OFFLINE
1: T o INDEXạ
M t index có th có t i đa 16 c t.ộ ể ố ộ
Quá nhi u index làm gi m hi u su t th c thi c a các câu l nh INSERT, UPDATE và DELETE.ề ả ệ ấ ự ủ ệ
Các index nên s d ng cho các b ng có kh i l ng d li u l n nh ng có yêu c u v c p nh t th p đ c i thi n hi u su t truy v n.ử ụ ả ố ượ ữ ệ ớ ư ầ ề ậ ậ ấ ể ả ệ ệ ấ ấ
Ngay c b ng có d li u nh v n nên duy trì các index, vì sau này d li u v n còn đ c thêm vào b ng.ả ả ữ ệ ỏ ẫ ữ ệ ẫ ượ ả
Object Syntax To Example Illustra
INDEX CREATE INDEX <Index-Name>
ON <Table-Name> (Field-Name)
CREATE INDEX IX_Country
ON Customer_Details(Country)
45. CLUSTERED INDEX CREATE CLUSTERED INDEX <Index-Name>
ON <Table-Name> (Field-Name)
CREATE CLUSTERED INDEX IX_CustID
ON Customer_Details(CustID)
NONCLUSTERED
INDEX
CREATE NONCLUSTERED INDEX <Index-
Name>
ON <Table-Name> (Field-Name)
CREATE NONCLUSTERED INDEX IX_State
ON Customer_Details(State)
UNIQUE INDEX CREATE UNIQUE INDEX <Index-Name>
ON <Table-Name> (Field-Name)
SQL Server 2005 không cho phép t oạ
unique index trên các c t có ch a các giá trộ ứ ị
trùng nhau
CREATE UNIQUE INDEX IX_CustID
ON Customer_Details(CustID)
COMPOSITE
INDEX
CREATE UNIQUE INDEX <Index-Name>
ON <Table-Name> (Field-Name [ASC |
DESC], [,….n])
CREATE UNIQUE INDEX IX_State_City
ON Customer_Details(State,City)
COMPUTED CREATE TABLE <Table-Name>
(
[<Field-Name-Computed>AS <Expression>]
…
)
C t Computed là các c t o trong b ng, giáộ ộ ả ả
CREATE TABLE Calc_Area
(
Length int,
Breadth int,
Area as Length*Breadth
)
46. tr c a nó đ c tính toán d a trên bi uị ủ ượ ự ể
th c lúc th c thiứ ự
COMPUTED INDEX CREATE INDEX <Index-Name>
ON <Table-Name> (Field-Name-Computed)
CREATE INDEX IX_Area ON
Calc_Area(Area);
2: Ch nh s a INDEXỉ ử
Khi các index càng tăng tr ng, nó b t đ u có s phân m nh. S phân m nh làm gi m t c đ truy v n l y d li u, và hao t n tài nguyên.ưở ắ ầ ự ả ự ả ả ố ộ ấ ấ ữ ệ ổ
Đ gi m s phân m ng, index c n đ c s a l iể ả ự ả ầ ượ ử ạ
Câu l nh ALTER INDEX cùng v i các tùy ch n đ c s d ng cho vi c b o trì các index.ệ ớ ọ ượ ử ụ ệ ả
Syntax
ALTER INDEX <index_name> ON <table_name>
{
REBUILD [WITH (pad_index = {ON|OFF} | FILLFACTOR = n%) ] | Disable | Reorganize
}
To Example
Xóa index IX_CustID đã đ c đ nh nghĩa trên b ng Customer_Details và t o l i v i FILLFACTOR=70. Các trang index m c lá s đ vùng tr ng chi m 30%ượ ị ả ạ ạ ớ ứ ẽ ể ố ế
47. ALTER INDEX IX_CustID ON Customer_DetailID
{
REBUILD WITH (FILLFACTOR = 70% )
}
J: Thao tác INDEX ONLINE
Các thao tác index tr c tuy n bao g m: t o m i, t o l i, và xóa các index.ự ế ồ ạ ớ ạ ạ
Khi có m t thao tác index đ c th c hi n, ng i dùng khác s b h n ch truy xu t d li u c a b ng cho t i khi thao tác đ c hoàn thành.ộ ượ ự ệ ườ ẽ ị ạ ế ấ ữ ệ ủ ả ớ ượ
Đ kh c ph c h n ch trên, SQL Server 2005 cung c p tùy ch n ONLINE đ cho phép nhi u ng i dùng v n có th truy c p d li u c a b ng trongể ắ ụ ạ ế ấ ọ ể ề ườ ẫ ể ậ ữ ệ ủ ả
khi thao tác index đang th c hi n.ự ệ
Action Syntax To Example
CREATE INDEX CREATE INDEX <Index-Name>
ON <Table-Name> (Column-Name)[,…n])
WITH (ONLINE = {ON|OFF})
ALTER INDEX ALTER INDEX <Index-Name>
ON <Table-Name>
REBUILD WITH (ONLINE={ON|OFF})
DROP INDEX DROP INDEX <Index-Name>
ON <Table-Name>
WITH (ONLINE={ON|OFF})
ALTER TABLE ALTER TABLE <Table-Name>
48. DROP CONSTRAINT<Constraint-Name>
WITH (ONLINE= {ON|OFF})
K: INDEX song song
V i máy tính có đa b x lý, SQL Server 2005 có th s d ng nhi u h n m t b x lý đ th c thi các thao tác index. Đi u này đ c g i là thao tácớ ộ ứ ể ử ụ ề ơ ộ ộ ử ể ự ề ượ ọ
index song song.
Các index l n s d ng nhi u b x lý, đi u đó làm h n ch tính s n sàng c a các b x lý cho nh ng ng d ng khác.ớ ử ụ ề ộ ử ề ạ ế ẵ ủ ộ ử ữ ứ ụ
Đ kh c ph c h n ch , b n c n xác đ nh tùy ch n MAXDOP đ gi i h n s b x lý đ c dùng b i các thao tác index.ể ắ ụ ạ ế ạ ầ ị ọ ể ớ ạ ố ộ ử ượ ở
ALTER INDEX <Index-Name>
ON <Table-Name>
WITH (MAXDOP=max_degree_of_parallelism)
L: INDEX ph c h pứ ợ
M t index ph c h p (Composite index) không th s d ng nhi u h n 16 c t khóa và kích th c t i đa là 900 byte.ộ ứ ợ ể ử ụ ề ơ ộ ướ ố
Đ m r ng thêm ch c năng c a các nonclustered index, SQL Server 2005 cho phép b n có th đ a thêm các c t không khóa vào nh ng index này.ể ở ộ ứ ủ ạ ể ư ộ ữ
Có th thêm t i đa 1023 c t không khóa, nh ng v n b t bu c ph i có ch a m t c t khóa.ể ố ộ ư ẫ ắ ộ ả ứ ộ ộ
Syntax
CREATE NONCLUSTERED INDEX <Index-Name>
ON <Table-Name>(Column-Name(s))
INCLUDE (Column-Name(s))
To Example
T o index có tên IX_Customer_AccNo trên c t khóa AccNo c a b ng Customer_Details cùng v i ba c t không khóa Address, City, Stateạ ộ ủ ả ớ ộ
CREATE NONCLUSTERED INDEX IX_Customer_AccNo
ON Customer_Details(AccNo)
INCLUDE (Address, City, Sate)
M: XML INDEX
XML index s c pơ ấ
49. Là index đ c t o đ u tiên trên c t XMLượ ạ ầ ộ
XMl index ch có th t o đ c n u trên b ng đã có khóa chínhỉ ể ạ ượ ế ả
Ch có th t o đ c m t XML index s c p cho m i c t XML.ỉ ể ạ ượ ộ ơ ấ ỗ ộ
XML index th c pứ ấ
Có th t o nhi u XML index th c p trên cùng m t b ng đã có XML s c p.ể ạ ề ứ ấ ộ ả ơ ấ
Type Syntax To Example
S c pơ ấ CREATE PRIMARY XML INDEX Index-Name
ON Table-Name(Column-Name_xml)
CREATE PRIMARY XML INDEX PXML_DocumentStore
ON XMLDocument(DocumentStore)
Th c pứ ấ CREATE XML INDEX Index-Name
ON Table-Name(Column-Name_xml)
USING XML INDEX Index-Name_xml
FOR VALUE | PATH | PROPERTY
CREATE XML INDEX XML_IX_DocumentStore
ON XMLDocument(DocumentStore)
USING XML INDEX PXML_DocumentStore
FOR PATH
N: INDEX Statics
Ch s th ng kê cung c p thông tin v s phân b c a các giá tr trong m t c t, nhóm c t. Vi c t i u hóa truy v n s d ng s li u th ng kê ch s đ tăngỉ ố ố ấ ề ự ố ủ ị ộ ộ ộ ệ ố ư ấ ử ụ ố ệ ố ỉ ố ể
t c quá trình truy v nố ấ
CREATE Statics
CREATE STATISTICS States_customer
ON customer_details(custID)
UPDATE Statics
UPDATE Statistics customer_details Stats_customer
SHOW Statics
DBCC SHOW_STATISTICS
(
50. database_name [ , target_percent ]
[ , { NOTRUNCATE | TRUNCATEONLY } ]
)
1: Xem thông tin INDEX
SQL Server 2005 cho phép b n xem các thu c tính, không gian đ c s d ng b i index c a các t t c index đã đ c đ nh nghĩa trên b ng.ạ ộ ượ ử ụ ở ủ ấ ả ượ ị ả
Có th xem thông tin b ng hai cách sau:ể ằ
Dùng th t c n i t i sp_helpindex.ủ ụ ộ ạ
sp_helpindex <Table-Name>
Dùng SQL Server Management Studio.
IV: Phân vùng INDEX (Patitioned INDEX)
Phân vùng m t b ng hay index là chia d li u thành nhóm các dòng nh h n.ộ ả ữ ệ ỏ ơ
Th c hi n thao tác qu n lý trên các nhóm dòng s hi u qu h n, vì ch th c hi n trên m t kh i nh d li u thay vì trên toàn b b ng hay index.ự ệ ả ẽ ệ ả ơ ỉ ự ệ ộ ố ỏ ữ ệ ộ ả
Phân khu b ngả
Phân khu index
Các b c t o phân vùng indexướ ạ :
B c 1: T o m t hàm phân vùng (Partition Function)ướ ạ ộ
CREATE PARTITION FUNCTION Tên_hàm_phân_vùng(ki udl_c a_tham_s )ể ủ ố
AS RANGE [LEFT | RIGHT] FOR VALUES (Giá_tr _1, …,Giá_tr _n)ị ị
B c 2: T o m t l c đ phân vùng (Partition Scheme)ướ ạ ộ ượ ồ
CREATE PARTITION SCHEME Tên_l c_đ _phân_vùngượ ồ
AS PARTITION Tên_hàm_phân_vùng
ALL TO (tên_file_group | [PRIMARY] , …)
B c 3: T o b ng phân vùng ho c index phân vùngướ ạ ả ặ
CREATE TABLE Table-Name (Column-Name ki udl, …)ể
ON Tên_l c_đ _phân_vùngượ ồ (Column-Name_phân_vùng)
51. CREATE [UNIQUE | CLUSTERED | NONCLUSTERED] INDEX Index-Name
ON Table-Name(Column-Name)
[ON Tên_l c_đ _phân_vùng(Column-Name_phân_vùng)ượ ồ ]
To Example:
T o m t phân vùng hàmạ ộ PF_Employee_Details
CREATE PARTITION FUNCTION PF_Employee_Details (int)
AS RANGE LEFT FOR VALUES (5,10)
T o l c đ phân vùngạ ượ ồ PF_Employee_Details
CREATE PARTITION SCHEME PS_Employee_Details
AS PARTITION PF_Employee_Details
ALL TO ([PRIMARY])
T o b ng Employee_Details đ c phân vùng v iạ ả ượ ớ PF_Employee_Details
CREATE TABLE Employee_Details
(
EmpID int NOT NULL,
FirstName varchar(30) NOT NULL,
LastName varchar(30) NOT NULL,
DateofBirth datetime NOT NULL,
Gender varchar(6) NOT NULL,
City varchar(40) NOT NULL,
) ON PS_Employee_Details (EmpID)
CREATE NONCLUSTERED INDEX Ix_City
ON Employee_Details(City)
ON PS_Employee_Details(EmpId)
V: S phân m nh INDEX (ự ả fragmentation)
M i khi index đ c t o, thông tin c a index đ c l u trong các trang index. Các trang index đ c s p x p liên ti p và liên k t v i nhau b i các conỗ ượ ạ ủ ượ ư ượ ắ ế ế ế ớ ở
tr .ỏ
Khi th c hi n thêm ho c xóa d li u s làm cho thông tin c a index b r i rác. Đi u này g i là s phân m nh.ự ệ ặ ữ ệ ẽ ủ ị ả ề ọ ự ả
S phân m nh làm gi m t c đ th c thi truy v n và th i gian đáp ng s lâu h n.ự ả ả ố ộ ự ấ ờ ứ ẽ ơ
SQL Server 2005 cho phép t ch c l i index theo đ nh kỳ đ gi m s phân m nh và tăng t c đ đáp ngổ ứ ạ ị ể ả ự ả ố ộ ứ
52. A: T ch c l i INDEXổ ứ ạ
T ch c l i index nh m b đi s phân m nh trong clustered index và nonclustered index.ổ ứ ạ ằ ỏ ự ả
T ch c l i index, là index trong các trang hi n có đ c s p x p l i th t , các trang index tr ng b lo i b .ổ ứ ạ ệ ượ ắ ế ạ ứ ự ố ị ạ ỏ
Syntax
ALTER INDEX Index-Name
ON Table-Name REORGANIZE
To Example
ALTER INDEX IX_City
ON Customer_Details REORGANIZE
B: Xây d ng l i INDEXự ạ
Xây d ng l i index là xóa index đang t n t i và t o l i index m i có cùng tên.ự ạ ồ ạ ạ ạ ớ
Vi c xây d ng l i index, s phân m nh trong index tr c đ c lo i b hoàn toàn.ệ ự ạ ự ả ướ ượ ạ ỏ
Method Syntax To Example
ALTER ALTER INDEX Index-Name
ON Table-Name REBUILD
ALTER INDEX IX_Customer_City
ON Customer_Details REBUILD
DROP_EXISTING CREATE [UNIQUE | CLUSTERED |
NONCLUSTERED]
CREATE NONCLUSTERED
INDEX IX_Customer_City
53. INDEX Index-Name
ON Table-Name(Column-Name)
WITH ( DROP_EXISTING= ON | OFF )
ON Customer_Details
WITH (DROP_EXISTING = ON)
C: Vô hi u hóa INDEXệ
Vô hi u hóa index nh m gi i h n ng i dùng truy xu t index.ệ ằ ớ ạ ườ ấ
N u vô hi u hóa m t clustered index, ng i dùng ch b gi i h n truy xu t d li u c a b ng đó, còn thông tin trong index không b g b .ế ệ ộ ườ ỉ ị ớ ạ ấ ữ ệ ủ ả ị ỡ ỏ
Khi nâng c p SQL Server lên phiên b n m i, các index đã đ c đ nh nghĩa trên b ng s t đ ng b vô hi u.ấ ả ớ ượ ị ả ẽ ự ộ ị ệ
Cú pháp
ALTER INDEX Index-Name
ON Table-Name DISABLE
Ví dụ
ALTER INDEX IX_Customer_City
ON Customer_Details DISABLE
D: Xóa INDEX
Syntax
DROP INDEX Index-Name
ON Table-Name
To Example
DROP INDEX IX_Customer_City
ON Customer_Details
VI: H s đi n đ y FILLFACTORệ ố ể ầ
SQL Server 2005 cung c p tùy ch n FILLFACTOR đ xác đ nh m t t l cho SQL Server bi t cách đi n đ y d li u trên trang m c lá (leaf level) c aấ ọ ể ị ộ ỷ ệ ế ề ầ ữ ệ ứ ủ
index.
Giá tr có th gán cho FILLFACTOR t 1 đ n 100. M c đ nh là 0. Giá tr c a FILLFACTOR=100 đ c s d ng cho cácị ể ừ ế ặ ị ị ủ ượ ử ụ
b ng ch đ c.ả ỉ ọ
54. Cú pháp
CREATE INDEX <Index-Name>
ON <Table-Name>(Field-Name)
WITH (FILLFACTOR=n)
Ví dụ
T o clustered indexạ IX_Country trên c tộ Country trong b ngả Customer_Details v i FILLFACTOR=60, 40% c a trang m c lá đ c đ tr ng cho các d li uớ ủ ứ ượ ể ố ữ ệ
đ c thêm v sau.ượ ề
CREATE INDEX IX_Country
ON Customer_Details(Country)
WITH (FILLFACTOR=60)
Tùy ch n PAD_INDEX dùng đ xác đ nh không gian tr ng trên m i trang(page) m c trung gian (intermediate level) c a index cho vi c tăng tr ngọ ể ị ố ỗ ở ứ ủ ệ ưở
sau này.
Các tùy ch n PAD_INDEX ch có ích khi FILLFACTOR đ c xác đ nh, b i vì PAD_INDEX s d ng t l theo quy đ nh c a FILLFACTOR.ọ ỉ ượ ị ở ử ụ ỷ ệ ị ủ
N u tùy ch n PAD_INDEX không đ c ch đ nh ho c đ c thi t l p OFF. SQL Server đ m b o r ng m i trang index m c trung gian có đ không gianế ọ ượ ỉ ị ặ ượ ế ậ ả ả ằ ỗ ứ ủ
tr ng đ ch a ít nh t m t dòng.ố ể ứ ấ ộ
VII: Locking (khóa)
SQL Server 2005 cung c p tính năng ngăn c n nhi u ng i dùng cùng đ ng th i th c hi n c p nh t trên cùng d li u.ấ ả ề ườ ồ ờ ự ệ ậ ậ ữ ệ
S d ng tính năng locking, m t ng i dùng này có th ngăn ng i dùng khác ch nh s a d li u mà mình đang th c hi n c p nh t.ử ụ ộ ườ ể ườ ỉ ử ữ ệ ự ệ ậ ậ
Trong SQL Server 2005 cho phép khóa các m c sau:ở ứ
Dòng (recommend)
B ng (ả recommend)
Trang (recommend)
55. C s d li u (notơ ở ữ ệ recommend)
Vi c th c hi n khóa riêng t ng dòng trong b ng s làm gia tăng s l ng khóa, t n tài nguyên đ l u tr khóa.ệ ự ệ ừ ả ẽ ố ượ ố ể ư ữ
Query optimizer cho phép áp d ng khóa trang đ gi m b t tài nguyên đ c dùng cho vi c l u khóa.ụ ể ả ớ ượ ệ ư
Hai tùy ch n sau đ c dùng trong câu l nh CREATE INDEX và ALTER INDEXọ ượ ệ
ALLOW_ROW_LOCK
ALLOW_PAGE_LOCK
Syntax
CREATE INDEX <Index-Name>
ON <Table-Name> (Column-Name)
WITH (ALLOW_ROW_LOCKS = {ON|OFF}, ALLOW_PAGE_LOCKS = {ON|OFF} )
To Example
CREATE INDEX IX_state
ON customer_details(state)
WITH (ALLOW_ROW_LOCKS=ON, ALLOW_PAGE_LOCKS=ON)
VIII: Tìm ki m dòng (Finding Rows)ế
Tìm ki m các dòng khi không có các indexế
Khi không có index t o cho b ng, SQL Server s d ng các view catalog đ tìm các dòng.ạ ả ử ụ ể
SQL Server s d ng view sys.indexes đ tìm ra trang IAM. Trang IAM có ch a danh sách t t c các trang c a m t b ng, qua đó SQL Server có thử ụ ể ứ ấ ả ủ ộ ả ể
đ c t t c các trang d li u.ọ ấ ả ữ ệ
Khi view sys.indexes đ c s d ng, query optimizerượ ử ụ (t i u)ố ư ki m tra t t c các dòng trong m t b ng và ch rút ra các dòng đ c tham chi uể ấ ả ộ ả ỉ ượ ế
trong truy v n. Đi u đó làm phát sinh nhi u thao tác nh p/xu t và s d ng nhi u tài nguyên.ấ ề ề ậ ấ ử ụ ề
56. Tìm ki m các dòng v i Nonclustered indexế ớ
Nonclustered index t ng tươ ự nh m t m c l c quy n sách.ư ộ ụ ụ ể
Các con tr trong nút m c lá c a index tr t i v trí l u tr d li u c a b ng.ỏ ứ ủ ỏ ớ ị ư ữ ữ ệ ủ ả
Khi th c hi n tìm ki m các dòng b ng cácnonclustered index, câu l nh SELECT đ c dùng cùng v i các c t nonclustered index trong m nh đự ệ ế ằ ệ ượ ớ ộ ệ ề
WHERE.
57. Tìm ki m các dòng v i clustered indexế ớ
Các clustered index l u tr các dòng d li u d a trên các giá tr khóa c a chúng.ư ữ ữ ệ ự ị ủ
Khi th c hi n tìm ki m các dòng b ng các clustered index, câu l nh SELECT đ c dùng cùng v i các c t clustered index đ c ch ra trong m nhự ệ ế ằ ệ ượ ớ ộ ượ ỉ ệ
đ WHERE.ề
Lesson 3: View
Group 1: N i dungộ
Trong view ta có nh ng v n đ sau:ữ ấ ề
Gi i thi u Viewớ ệ
Đ nh nghĩa và gi i thích Viewị ả
Các lo i Viewạ
Các l i ích c a Viewợ ủ
58. View h th ngệ ố
Đ nh nghĩa Viewị
Cách t o viewạ
Các gi i h n c a viewớ ạ ủ
S a viewử
Xóa view
Cách xem thông tin đ nh nghĩa c a viewị ủ
Group 2: Gi i thi uớ ệ
I: Khái ni mệ
View là cách đ xem các d li u t m t hay nhi u b ng trong c s d li u.ể ữ ệ ừ ộ ề ả ơ ở ữ ệ
View là m t b ng o, đ c t o ra b i các c t đ c l y t m t ho c nhi u b ng(table) khác nhau. Các b ng này đ c g i là các b ng c s , chúngộ ả ả ượ ạ ở ộ ượ ấ ừ ộ ặ ề ả ả ượ ọ ả ở ở
có th trong cùng database ho c t các database khác.ể ặ ừ
View cũng có th ch a các c t l y t m t View khác trong cùng database ho c database khác.ể ứ ộ ấ ừ ộ ặ
M t View có th có t i đa 1024 c t.ộ ể ố ộ
View không th s p x p tr khi b n t o m t unique clustered index trên nó.ể ắ ế ừ ạ ạ ộ
Có th t o nhi u nonclustered index trên View, nh ng v i unique clustered index ch t o m t l n.ể ạ ề ư ớ ỉ ạ ộ ầ
M t index có th t o trên view n uộ ể ạ ế
View không ch a các c t t view khác.ứ ộ ừ
B ng c s n m trong cùng database v i view.ả ơ ở ằ ớ
59. II: Các lo i viewạ
View đ c chia thành ba lo iượ ạ
Standard View (khung nhìn chu n)ẩ
Là view đ c t o v i các c t l y t m t ho c nhi u b ng.ượ ạ ớ ộ ấ ừ ộ ặ ề ả
Indexed View (khung nhìn ch s )ỉ ố
Là view có m t unique clustered index. Indexed view r t có ích cho các truy v n th ng kê d li u. Indexed view không thích h p cho các b ng th ng xuyênộ ấ ấ ố ữ ệ ợ ả ườ
c p nh t.ậ ậ
Partitioned View (khung nhìn đ c phân chia)ượ
Là view dùng các d li u đ c phân vùng t m t ho c nhi u b ng. N u b ng c s đ c trên cùng server, view đ c xem nh là partitioned view c c bữ ệ ượ ừ ộ ặ ề ả ế ả ơ ở ượ ượ ư ụ ộ
(local partitioned view ), ng c l i, n u đ t trên sever khác đ c g i là partition view phân tán (Distributed partitioned view).ượ ạ ế ặ ượ ọ
III: u đi m c a viewƯ ể ủ
u đi m c a viewƯ ể ủ
B o m t thông qua cá nhân hóa truy xu t.ả ậ ấ
S d ng view, d li u đ c l y t cùng m t ngu n nh ng đ c hi n th khác nhau theo yêu c u c a m i ng i dùng.ử ụ ữ ệ ượ ấ ừ ộ ồ ư ượ ể ị ầ ủ ỗ ườ
Tùy bi n hi n th d li u.ế ể ị ữ ệ
D li u nh y c m có th đ c che gi u kh i nh ng ng i dùng không có đ th m quy n đ truy xu t.ữ ệ ạ ả ể ượ ấ ỏ ữ ườ ủ ẩ ề ể ấ
Cá nhân hóa truy xu t d li u đ c th c hi n b ng vi c ch cho phép ng i dùng truy xu t database thông qua m t t p nh các viewấ ữ ệ ượ ự ệ ằ ệ ỉ ườ ấ ộ ậ ỏ
Tr n d li u t nhi u b ng ho c view.ộ ữ ệ ừ ề ả ặ
View có th ghép các c t t nhi u b ng và view khác và chúng đ c hi n th cùng nhau nh l y t m t b ng.ể ộ ừ ề ả ượ ể ị ư ấ ừ ộ ả
Thao tác trên các b n ghi (record).ả
View cũng có th đ c dùng đ c p nh t d li u cho b ng, n u view đó có ch a t t c các c t quan tr ng c a b ng (nh c t khóa chính, c t NOT NULL).ể ượ ể ậ ậ ữ ệ ả ế ứ ấ ả ộ ọ ủ ả ư ộ ộ
60. Ki m tra ràng bu c toàn v n.ể ộ ẹ
N u d li u đ c thêm ho c ch nh s a thông qua view. SQL Server t đ ng ki m tra d li u đ đ m b o ràng bu c toàn v n cho t ng c t.ế ữ ệ ượ ặ ỉ ử ự ộ ể ữ ệ ể ả ả ộ ẹ ừ ộ
IV: View h th ngệ ố
View h th ng là các view đã đ c đ nh nghĩa s n trong SQL Server.ệ ố ượ ị ẵ
Thu c tính c a các đ i t ng khác nh table và view đ c l u tr trong các b ng h th ng. Các thu c tính này đ c xem nh là siêu d li uộ ủ ố ượ ư ượ ư ữ ả ệ ố ộ ượ ư ữ ệ
(metadata).
Siêu d li u có th xem đ c thông qua view h th ng.ữ ệ ể ượ ệ ố
Các lo i view h th ngạ ệ ố
Catalog view (View danh m c)ụ
Information Schema views (View l c đ thông tin)ượ ồ
Compatibility views (View t ng tích)ươ
Replication views (View nhân b n)ả
Dynamic Management views (View qu n lý đ ng)ả ộ
Notification services views (View d ch v thông báo)ị ụ
Group 3: S d ng VIEWử ụ
I: T o viewạ
Cú pháp
CREATE VIEW <View-Name>
AS Câu_l nh_Selectệ
Ví dụ
CREATE VIEW Salary_Details
AS
SELECT EmpID, FirstName, LastName, Salary
FROM Employe_Details