DataBase_System

Iniziamo. È gratuito!
o registrati con il tuo indirizzo email
DataBase_System da Mind Map: DataBase_System

1. Kiến trúc của Hệ quản trị CSDL

1.1. 4 thành phần trong hệ quản trị cơ sở dữ liệu

1.1.1. Database Application

1.1.2. Database

1.1.3. Phần cứng (Hardware)

1.1.4. people

1.1.4.1. Người quản trị CSDL (DataBase Administrator)

1.1.4.2. Người thiết kế CSDL (DataBase Designer)

1.1.4.3. Người phân tích hệ thống (System Analysts)

1.1.4.4. Người lập trình ứng dụng (Application Programmers)

1.1.4.5. Người dùng cuối (End-user)

2. Đại số Quan Hệ

2.1. Thuật ngữ

2.1.1. dùng phổ biến trong lý thuyết cơ sở dữ liệu quan hệ là một bộ các toán tử và các quy tắc tương ứng có thể được sử dụng để thao tác trên các toán học (relation) và tạo ra kết quả là một quan hệ khác

2.1.1.1. Các toán hạng và kết quả đều là quan hệ

2.1.1.2. Kết quả của 1 phép toán có thể trở thành toán hạng cho 1 phép toán khác  tính bao đóng (closure)

2.1.2. Đại số quan hệ là một ngôn ngữ thủ tục mức cao (high-level procedure language) cho phép DBMS tạo 1 quan hệ mới

2.1.3. Quan hệ khả hợp

2.1.3.1. Cho hai lược đồ quan hệ R(A1, A2,..., An) và S(B1, B2,..., Bm) được gọi là khả hợp nếu:

2.1.3.1.1. Chúng có cùng bậc: m = n.

2.1.3.1.2. Miền giá trị (DOM) của các thuộc tính tương ứng bằng nhau: DOM(Ai) = DOM(Bi) với 1 ≤ i ≤ n.

2.1.4. Query trong đại số quan hệ được tạo ra bằng cách kết hợp các biểu thức thông qua các toán tử. Mỗi query mô tả trình tự từng bước để tính toán cho câu trả lời mong muốn

2.1.5. An algebra whose operands are relations or variables that represent relations.

2.1.6. Mathematical system consisting of:

2.1.6.1. Operands --- variables or values from which new values can be constructed

2.1.6.2. Operators --- symbols denoting procedures that construct new values from given values

2.1.6.2.1. Operators are designed to do the most common things that we need to do with relations in a database

2.2. Core Relational Algebra

2.2.1. Union, intersection, and difference (phép hợp, giao và hiệu)

2.2.1.1. Là các phép toán nhị phân.

2.2.1.2. Các quan hệ toán hạng của các phép toán trên phải có cùng loại của các bộ

2.2.1.3. Các quan hệ toán hạng R1(A1, A2, ..., An) và R2(B1, B2, ...,Bn) phải có cùng số thuộc tính và miền giá trị của các thuộc tính tương ứng phải tương thích nhau.

2.2.1.4. Định nghĩa khả hợp: Hai quan hệ r và s được gọi là khả hợp nếu chúng được xác định trên cùng một tập các miền giá trị (Có nghĩa là chúng được xác định trên cùng một tập các thuộc tính).

2.2.1.5. Phép hợp - Union

2.2.1.6. phép trừ (difference)

2.2.1.7. Phép giao (intersection)

2.2.2. Selection (σ sigma phép chọn))

2.2.2.1. picking certain rows

2.2.2.2. R1 := σC (R2)

2.2.2.2.1. C is a condition (as in “if” statements) that refers to attributes of R2.

2.2.2.2.2. R1 is all those tuples of R2 that satisfy C

2.2.2.2.3. Example: Selection Relation Sells: bar beer price Joe’s Bud 2.50 Joe’s Miller 2.75 Sue’s Bud 2.50 Sue’s Miller 3.00 JoeMenu := σbar=“Joe’s”(Sells): bar beer price Joe’s Bud 2.50 Joe’s Miller 2.75

2.2.3. Projection (Π Pi phép chiếu)

2.2.3.1. picking certain columns

2.2.3.2. Extended Projection

2.2.3.2.1. Sử dụng cùng một toán tử πL, cho phép danh sách L để chứa tùy ý biểu thức liên quan đến các thuộc tính

2.2.3.2.2. Example: Extended Projection

2.2.4. Products and joins

2.2.4.1. các thành phần của các quan hệ

2.2.4.2. Product

2.2.4.2.1. ví dụ

2.2.4.3. Join R3 := R1 ⋈Condition R2

2.2.4.3.1. Natural join (⋈ bow tie phép kết tự nhiên) R3 := R1 ⋈C R2

2.2.4.3.2. θ-join (theta)

2.2.5. Renaming of relations and attributes (ρ Rho)

2.2.5.1. The ρ operator gives a new schema to a relation.

2.2.5.2. R1 := ρR1(A1,…,An)(R2) makes R1 be a relation with attributes A1,…,An and the same tuples as R2

2.2.5.3. Simplified notation: R1(A1,…,An) := R2

3. Bảo mật

4. Cơ sở dữ liệu

4.1. Định Nghĩa và thuật ngữ

4.1.1. Cơ sở dữ liệu là một tập hợp các dữ liệu có tổ chức, thường được lưu trữ và truy cập điện tử từ hệ thống máy tính. Khi cơ sở dữ liệu phức tạp hơn, chúng thường được phát triển bằng cách sử dụng các kỹ thuật thiết kế và mô hình hóa chính thức.

4.1.2. CSDL được tổ chức có cấu trúc: Các dữ liệu lưu trữ có cấu trúc thành các bản ghi (record), các trường dữ liệu (field). Các dữ liệu lưu trữ có mối quan hệ (relationship) với nhau.

4.1.3. Khả năng truy xuất thông tin từ CSDL: CSDL được cấu trúc để dễ dàng truy cập, quản lý và cập nhật dữ liệu

4.1.4. Mô hình hóa cơ sở dữ liệu bằng cách sử dụng kỹ thuật đồ họa để biểu diễn các đối tượng và quan hệ giữa các đối tượng trong thế giới thực mà con người có thể hiểu một cách dễ dàng

4.1.5. Mô hình thực thể quan hệ (Entity Relationship) dựa trên thế giới thực trong đó bao gồm một tập các đối tượng gọi là thực thể và mối quan hệ giữa các thực thực thể

4.2. Mục đích

4.2.1. CSDL được thiết kế, xây dựng cho phép người dùng lưu trữ dữ liệu, truy xuất thông tin hoặc cập nhật dữ liệu

4.3. Tính chất csdl

4.3.1. Nó biểu diễn cho một phần thế giới thực

4.3.2. Nó là tập hợp dữ liệu có quan hệ chặt chẽ về logic

4.3.3. Nó có một mục tiêu phục vụ cho một nhóm người dùng và ứng dụng nhất định

4.4. Phân loại cơ sở dữ liệu

4.4.1. Cơ sở dữ liệu trong bộ nhớ

4.4.1.1. là cơ sở dữ liệu chủ yếu nằm trong bộ nhớ chính, nhưng thường được sao lưu bằng bộ lưu trữ dữ liệu máy tính không biến động.

4.4.1.2. Cơ sở dữ liệu bộ nhớ chính nhanh hơn cơ sở dữ liệu đĩa và do đó thường được sử dụng trong đó thời gian đáp ứng là rất quan trọng, chẳng hạn như trong thiết bị mạng viễn thông.

4.4.2. Cơ sở dữ liệu đám mây

4.4.2.1. dựa trên công nghệ đám mây.

4.4.2.2. Cả cơ sở dữ liệu và hầu hết DBMS của nó đều nằm từ xa, "trong đám mây", trong khi các ứng dụng của nó được phát triển bởi các lập trình viên và sau đó được người dùng cuối duy trì và sử dụng thông qua trình duyệt web và API mở.

4.4.3. Cơ sở dữ liệu thời gian thực xử lý các giao dịch đủ nhanh để kết quả quay trở lại và được xử lý ngay lập tức.

4.4.4. Một cơ sở dữ liệu hoạt động( Active database)

4.4.4.1. bao gồm một kiến trúc hướng sự kiện có thể đáp ứng các điều kiện cả bên trong và bên ngoài cơ sở dữ liệu.

4.4.4.2. Sử dụng có thể bao gồm giám sát an ninh, cảnh báo, thu thập số liệu và ủy quyền.

4.4.4.3. Nhiều cơ sở dữ liệu cung cấp các tính năng cơ sở dữ liệu hoạt động dưới dạng kích hoạt cơ sở dữ liệu.

4.4.5. Phân loại more information(wikipedia)

4.5. Mô Hình CSDL

4.5.1. Các loại Mô hình

4.5.1.1. Mô hình dữ liệu quan hệ (Relational model)

4.5.1.1.1. Trong mô hình dữ liệu quan hệ, không có các liên kết vật lý. Dữ liệuđược biểu diễn dưới dạng bảng với các hàng và các cột:

4.5.1.1.2. Dữ liệu trong hai bảng liên hệ với nhau thông qua các cột chung.

4.5.1.1.3. Có các toán tử để thao tác trên các hàng của bảng

4.5.1.1.4. Ví dụ: mô hình dữ liệu quan hệ trong CSDL Northwind gồm 3 bảng:Customer, Order, Employee

4.5.1.2. Mô hình dữ liệu hướng đối tượng (Object Oriented model)

4.5.1.2.1. Ra đời vào khoảng đầu năm 90, dựa trên cách tiếp cận của phươngpháp lập trình hướng đối tượng.

4.5.1.2.2. CSDL bao gồm các đối tượng:

4.5.1.2.3. Ví dụ mô hình dữ liệu đối tượng “Customer”

4.5.1.3. Mô hình cơ sở dữ liệu điều hướng

4.5.1.3.1. Mô hình dữ liệu phân cấp (Hierarchical model)

4.5.1.3.2. Mô hình dữ liệu mạng (Network model)

4.5.1.3.3. Mô hình đồ thị

4.5.1.4. Mô hình tài liệu

4.5.1.5. Mô hình dữ liệu file phẳng (Flat file)

4.5.1.5.1. Mô hình này chỉ dùng cho các CSDL đơn giản.

4.5.1.5.2. CSDL dạng file phẳng thường là file kiểu văn bản chứa dữ liệu dạng bảng

4.5.1.5.3. Ví dụ: một file phẳng thể hiện thông tin một Customer (Khách hàng) dưới dạng bảng của một công ty Northwind Traders chuyên cung cấp các mặt hàng thực phẩm

4.5.1.6. Mô hình liên kết

4.5.1.7. Mô hình đa chiều

4.5.1.8. Mô hình mảng

4.5.1.9. Mô hình đa giá trị

4.5.2. Các mô hình chuyên biệt được tối ưu hóa cho các loại dữ liệu cụ thể:

4.5.2.1. Cơ sở dữ liệu XML

4.5.2.2. Mô hình ngữ nghĩa

4.5.2.3. Cửa hàng nội dung

4.5.2.4. Cửa hàng sự kiện

4.5.2.5. Mô hình chuỗi thời gian

4.5.3. Các Mức mô hình csdl

4.5.3.1. Mô Hình dữ liệu(khái niệm) logic

4.5.3.1.1. Cung cấp các khái niệm gần gũi với người dùng

4.5.3.1.2. Mô hình phải tự nhiên và giàu ngữ nghĩa

4.5.3.1.3. VD: mô hình thực thể kết hợp (ER), mô hình đối tượng…

4.5.3.2. mô hình mức thấp vật lý(physic)

4.5.3.2.1. Đưa ra các khái niệm mô tả chi tiết về cách thức dữ liệu được lưu trữ trong máy tính

4.5.4. resume

4.5.4.1. Các CSDL có thể khác nhau về chức năng và mô hình dữ liệu (data model).

4.5.4.2. Mô hình dữ liệu sẽ quyết định cách thức lưu trữ và truy cập dữ liệu.

4.5.4.3. Tùy từng ngữ cảnh quan hệ giữa các thành phần dữ liệu trong CSDL, mô hình phức hợp được áp dụng để việc lưu trữ và truy xuất dữ liệu đạt hiệu quả cao nhất.

4.6. Phụ thuộc hàm

4.6.1. lý thuyết

4.6.1.1. image

4.6.2. Hệ tiền đề armstrong

4.6.2.1. Hệ tiền đề arstrong

4.6.3. Tính chất phụ thuộc hàm

4.6.3.1. Hình ảnh

4.6.4. Suy diễn lô­gíc

4.6.4.1. logic

4.6.5. Bao đóng của phụ thuộc hàm

4.6.5.1. hình ảnh

4.6.5.2. ví dụ

4.6.5.3. ví dụ

4.6.6. Bao đóng tập thuộc tính

4.6.6.1. hình ảnh

4.6.7. thuật toán tìm bao đóng

4.6.7.1. thuật toán

4.6.7.2. hình ảnh

4.6.7.3. ví dụ

4.6.7.4. ví dụ 2

4.7. Quy trình phát triển CSDL

4.7.1. Normalization

4.7.1.1. Mục đích của việc chuẩn hoá

4.7.1.1.1. Chuẩn hoá là một kỹ thuật để tạo ra một tập hợp các quan hệ thích hợp để hỗ trợ các yêu cầu dữ liệu của một hoạt động

4.7.1.1.2. Về cơ bản, các quy tắc chuẩn hoá loại bỏ các dư thừa dữ liệu và những quan hệ phụ thuộc mâu thuẫn nhau giữa các bảng

4.7.1.2. Dư thừa thông tin và cập nhật dị thường

4.7.1.2.1. Dư thừa dữ liệu là sự trùng lặp thông tin trong cơ sở dữ liệu

4.7.1.2.2. Các dị thường cập nhật dữ liệu

4.7.1.3. Quy Trình chuẩn hóa

4.7.1.3.1. Chuẩn 1NF

4.7.1.3.2. Chuẩn 2NF

4.7.1.3.3. Chuẩn 3NF

4.7.1.3.4. Boyce codd normal form (BCNF)

4.7.2. Denormalization

4.7.2.1. lý thuyết

4.7.2.1.1. thiết kế dữ liệu

4.7.2.1.2. thiết kế cơ sở dữ liệu

4.7.2.2. quy trình phát triển cơ sở dữ liệu

4.7.2.3. Mô hình hóa nghiệp vụ (Enterprise modeling) (nghiên cứu ban đầu về cơ sở dữ liệu)

4.7.2.3.1. phân tích

4.7.2.4. thiết kế cơ sở dữ liệu

4.7.2.4.1. Thiết kế CSDL logic (logical database design)

4.7.2.4.2. Thiết kế CSDL vật lý (physical database design)

4.7.2.5. Thực hiện

4.7.2.6. Kiểm tra và đánh giá

4.7.2.7. Vận Hành csdl

4.7.2.8. Duy trì và phát triển csdl

4.8. Các đặc điểm CSDL trong HQTCSDL

4.8.1. CSDL cung cấp khả năng trừu tượng hóa dữ liệu thông qua các lớp. Bao gồm 3 lớp: Lớp vật lý, Lớp logic, Lớp bên ngoài.

4.8.1.1. Lớp vật lý:

4.8.1.1.1. Lớp vật lý chứa toàn bộ các file dữ liệu

4.8.1.1.2. Người dùng CSDL không nhất thiết phải nắm được cấu trúc tổ chức của các file dữ liệu vật lý khi sử dụng một cơ sở dữ liệu

4.8.1.2. Lớp logic (còn được gọi là Schema):

4.8.1.2.1. Cấu trúc dữ liệu trừu tượng được tạo thành từ lớp vật lý.

4.8.1.2.2. Lớp logic có thể chứa một tập hợp các bảng hai chiều, một cấu trúc phân cấp tương tự như sơ đồ tổ chức của một công ty hay một vài cấu trúc khác

4.8.1.3. Lớp bên ngoài:

4.8.1.3.1. Bao gồm các khung nhìn (view) và được gọi chung là subschema

4.8.1.3.2. Khung nhìn: là khái niệm cho phép nhiều người dùng quan sát dữ liệu theo nhiều cách khác nhau trong khi dữ liệu lưu bên dưới tầng vật lý là duy nhất.

4.8.2. Sự phân biệt giữa các lớp tạo nên 2 tầng độc lập: Độc lập dữ liệu vật lý và độc lập dữ liệu logic

4.8.2.1. Độc lập dữ liệu vật lý:

4.8.2.1.1. Khả năng thay đổi cấu trúc file vật lý của một cơ sở dữ liệu mà không làm gián đoạn người dùng đang truy cập vào các quá trình đang diễn ra được gọi là độc lập dữ liệu vật lý

4.8.2.1.2. Việc phân biệt lớp vật lý với lớp lô-gic tạo ra sự độc lập dữ liệu vật lý

4.8.2.2. Độc lập dữ liệu logic:

4.8.2.2.1. Khả năng tạo ra các thay đổi tới lớp lô-gic mà không làm gián đoạn người dùng hiện tại và các quá trình đang diễn ra được gọi là độc lập dữ liệu lô-gic.

4.8.2.2.2. Việc phân biệt giữa lớp lô-gic và lớp bên ngoài tạo ra tính độc lập dữ liệu lô-gic.

4.8.3. Tính trừu tượng dữ liệu: thể hiện qua các mô hình dữ liệu

4.8.4. Hỗ trợ nhiều khung nhìn

5. Ngôn Ngữ SQL

5.1. Terminology

5.1.1. là ngôn ngữ truy vấn mang tính cấu trúc, là một loại ngôn ngữ máy tính phổ biến để tạo, sửa, và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan hệ

5.1.2. SQL kết hợp các vai trò của định nghĩa dữ liệu, thao tác dữ liệu và truy vấn trong một ngôn ngữ. Đó là một trong những ngôn ngữ thương mại đầu tiên cho mô hình quan hệ, mặc dù nó rời khỏi một số khía cạnh từ mô hình quan hệ như được mô tả bởi Codd (ví dụ, các hàng và cột của bảng có thể được đặt hàng). Các tiêu chuẩn đã được nâng cao thường xuyên kể từ khi được hỗ trợ (với mức độ phù hợp khác nhau) DBMS quan hệ

5.1.2.1. SQL đã trở thành một tiêu chuẩn của Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI) vào năm 1986

5.1.2.2. Tổ chức Tiêu chuẩn hóa Quốc tế (ISO) năm 1987

5.2. BASIC

5.2.1. INTRODUCTION

5.2.1.1. SQL stands for Structured Query Language

5.2.1.2. ANSI (American National Standards Institute) standard

5.2.1.3. lets you access and manipulate databases

5.2.1.4. The data in RDBMS is stored in database objects called tables.

5.2.1.4.1. A table is a collection of related data entries and it consists of columns and rows.

5.2.1.5. What

5.2.1.5.1. SQL can execute queries against a database

5.2.1.5.2. SQL can retrieve data from a database

5.2.1.5.3. SQL can insert records in a database

5.2.1.5.4. SQL can update records in a database

5.2.1.5.5. SQL can delete records from a database

5.2.1.5.6. SQL can create new databases

5.2.1.5.7. SQL can create new tables in a database

5.2.1.5.8. SQL can create stored procedures in a database

5.2.1.5.9. SQL can create views in a database

5.2.1.5.10. SQL can set permissions on tables, procedures, and views

5.2.2. DELETE

5.2.2.1. The DELETE statement is used to delete rows in a table.

5.2.2.2. Code Examples

5.2.2.2.1. DELETE FROM table_name WHERE some_column=some_value;

5.2.2.3. The WHERE clause specifies which record or records that should be deleted. If you omit the WHERE clause, all records will be deleted!

5.2.2.4. Delete All Data

5.2.2.4.1. DELETE FROM table_name;

5.2.2.4.2. or

5.2.2.4.3. DELETE * FROM table_name;

5.2.3. INSERT INTO

5.2.3.1. The INSERT INTO statement is used to insert new records in a table.

5.2.3.2. Code Examples

5.2.3.2.1. The first form does not specify the column names where the data will be inserted, only their values:

5.2.3.2.2. The second form specifies both the column names and the values to be inserted:

5.2.4. ORDER BY

5.2.4.1. The ORDER BY keyword is used to sort the result-set by one or more columns.

5.2.4.2. The ORDER BY keyword sorts the records in ascending order by default. To sort the records in a descending order, you can use the DESC keyword.

5.2.4.3. Code Example

5.2.4.3.1. SELECT column_name,column_name FROM table_name ORDER BY column_name,column_name ASC|DESC;

5.2.4.3.2. ORDER BY Several Columns Example

5.2.5. AND & OR

5.2.5.1. The AND & OR operators are used to filter records based on more than one condition.

5.2.5.2. The AND operator displays a record if both the first condition AND the second condition are true.

5.2.5.2.1. Example

5.2.5.3. The OR operator displays a record if either the first condition OR the second condition is true.

5.2.5.3.1. Example

5.2.5.4. Combined

5.2.5.4.1. Example

5.2.6. WHERE

5.2.6.1. The WHERE clause is used to extract only those records that fulfill a specified criterion.

5.2.6.2. SQL requires single quotes around text values (most database systems will also allow double quotes).

5.2.6.3. However, numeric fields should not be enclosed in quotes:

5.2.6.3.1. Example

5.2.6.4. Code Examples

5.2.6.4.1. SELECT column_name,column_name FROM table_name WHERE column_name operator value;

5.2.6.5. Operators in WHERE Clause

5.2.6.5.1. =

5.2.6.5.2. <>

5.2.6.5.3. >

5.2.6.5.4. <

5.2.6.5.5. >=

5.2.6.5.6. <=

5.2.6.5.7. BETWEEN

5.2.6.5.8. LIKE

5.2.6.5.9. IN

5.2.7. SELECT DISTINCT

5.2.7.1. In a table, a column may contain many duplicate values; and sometimes you only want to list the different (distinct) values.

5.2.7.2. Code Examples

5.2.7.2.1. SELECT DISTINCT column_name,column_name FROM table_name;

5.2.8. SELECT

5.2.8.1. The SELECT statement is used to select data from a database

5.2.8.2. The result is stored in a result table, called the result-set.

5.2.8.3. Code Examples

5.2.8.3.1. SELECT * FROM table_name;

5.2.8.3.2. SELECT column_name,column_name FROM table_name;

5.2.8.4. SQL SELECT TOP

5.2.8.4.1. The SELECT TOP clause is used to specify the number of records to return.

5.2.8.4.2. The SELECT TOP clause can be very useful on large tables with thousands of records. Returning a large number of records can impact on performance.

5.2.8.4.3. Not all database systems support the SELECT TOP clause.

5.3. DATA TYPE

5.3.1. Microsoft Access Data Types

5.3.1.1. Text

5.3.1.1.1. Use for text or combinations of text and numbers. 255 characters maximum

5.3.1.2. Memo

5.3.1.2.1. Memo is used for larger amounts of text. Stores up to 65,536 characters.Note: You cannot sort a memo field. However, they are searchable

5.3.1.3. Byte

5.3.1.3.1. Allows whole numbers from 0 to 255

5.3.1.3.2. 1 byte

5.3.1.4. Integer

5.3.1.4.1. Allows whole numbers between -32,768 and 32,767

5.3.1.4.2. 2 bytes

5.3.1.5. Long

5.3.1.5.1. Allows whole numbers between -2,147,483,648 and 2,147,483,647

5.3.1.5.2. 4 bytes

5.3.1.6. Single

5.3.1.6.1. Single precision floating-point. Will handle most decimals

5.3.1.6.2. 4 bytes

5.3.1.7. Double

5.3.1.7.1. Double precision floating-point. Will handle most decimals

5.3.1.7.2. 8 bytes

5.3.1.8. Currency

5.3.1.8.1. Use for currency. Holds up to 15 digits of whole dollars, plus 4 decimal places.Tip: You can choose which country's currency to use

5.3.1.8.2. 8 bytes

5.3.1.9. AutoNumber

5.3.1.9.1. AutoNumber fields automatically give each record its own number, usually starting at 1

5.3.1.9.2. 4 bytes

5.3.1.10. Date/Time

5.3.1.10.1. Use for dates and times

5.3.1.10.2. 8 bytes

5.3.1.11. Yes/No

5.3.1.11.1. A logical field can be displayed as Yes/No, True/False, or On/Off. In code, use the constants True and False (equivalent to -1 and 0). Note: Null values are not allowed in Yes/No fields

5.3.1.11.2. 1 bit

5.3.1.12. Ole Object

5.3.1.12.1. Can store pictures, audio, video, or other BLOBs (Binary Large OBjects)

5.3.1.12.2. up to 1GB

5.3.1.13. Hyperlink

5.3.1.13.1. Contain links to other files, including web pages

5.3.1.14. Lookup Wizard

5.3.1.14.1. Let you type a list of options, which can then be chosen from a drop-down list

5.3.1.14.2. 4 bytes

5.3.2. SQL Server Data Types

5.3.2.1. Exact Number 9

5.3.2.1.1. bigint

5.3.2.1.2. int

5.3.2.1.3. smallint

5.3.2.1.4. tinyint

5.3.2.1.5. decimal(p,s)

5.3.2.1.6. numeric(p,s)

5.3.2.1.7. bit

5.3.2.1.8. smallmoney

5.3.2.1.9. money

5.3.2.2. Approximate Number 2

5.3.2.2.1. float(n)

5.3.2.2.2. real

5.3.2.3. Date and Time 6

5.3.2.3.1. datetime

5.3.2.3.2. datetime2

5.3.2.3.3. smalldatetime

5.3.2.3.4. date

5.3.2.3.5. time

5.3.2.3.6. datetimeoffset

5.3.2.4. Character strings 3

5.3.2.4.1. char(n)

5.3.2.4.2. varchar

5.3.2.4.3. text

5.3.2.5. Unicode character strings 3

5.3.2.5.1. nchar

5.3.2.5.2. nvarchar

5.3.2.5.3. ntext

5.3.2.6. Binary strings 3

5.3.2.6.1. binary(n)

5.3.2.6.2. varbinary(n | max)

5.3.2.6.3. image

5.3.2.7. Other data types 9

5.3.2.7.1. cursor

5.3.2.7.2. hierarchyid

5.3.2.7.3. sql_variant

5.3.2.7.4. Spatial Geometry Types

5.3.2.7.5. table

5.3.2.7.6. rowversion

5.3.2.7.7. uniqueidentifier

5.3.2.7.8. xml

5.3.2.7.9. Spatial Geography Types

5.3.3. MySQL Data Types

5.3.3.1. Text Types

5.3.3.1.1. SET

5.3.3.1.2. VARCHAR(size)

5.3.3.1.3. TINYTEXT

5.3.3.1.4. TEXT

5.3.3.1.5. BLOB

5.3.3.1.6. MEDIUMTEXT

5.3.3.1.7. MEDIUMBLOB

5.3.3.1.8. LONGTEXT

5.3.3.1.9. LONGBLOB

5.3.3.1.10. ENUM(x,y,z,etc.)

5.3.3.1.11. CHAR(size)

5.3.3.2. Number Types

5.3.3.2.1. TINYINT(size)

5.3.3.2.2. SMALLINT(size)

5.3.3.2.3. MEDIUMINT(size)

5.3.3.2.4. INT(size)

5.3.3.2.5. BIGINT(size)

5.3.3.2.6. FLOAT(size,d)

5.3.3.2.7. DOUBLE(size,d)

5.3.3.2.8. DECIMAL(size,d)

5.3.3.3. Date Types

5.3.3.3.1. DATE()

5.3.3.3.2. DATETIME()

5.3.3.3.3. TIMESTAMP()

5.3.3.3.4. TIME()

5.3.3.3.5. YEAR()

5.4. FUNCTION

5.4.1. Overview

5.4.1.1. SQL Aggregate Functions

5.4.1.1.1. SQL aggregate functions return a single value, calculated from values in a column.

5.4.1.2. SQL Scalar functions

5.4.1.2.1. SQL scalar functions return a single value, based on the input value.

5.4.2. Functions

5.4.2.1. SQL AVG()

5.4.2.1.1. The AVG() function returns the average value of a numeric column.

5.4.2.1.2. Syntax

5.4.2.2. SQL COUNT()

5.4.2.2.1. The COUNT() function returns the number of rows that matches a specified criteria.

5.4.2.2.2. Syntax

5.4.2.3. SQL FIRST()

5.4.2.3.1. The FIRST() function returns the first value of the selected column.

5.4.2.3.2. Syntax

5.4.2.4. SQL LAST()

5.4.2.4.1. The LAST() function returns the last value of the selected column.

5.4.2.4.2. Syntax

5.4.2.5. SQL MAX()

5.4.2.5.1. The MAX() function returns the largest value of the selected column.

5.4.2.5.2. Syntax

5.4.2.6. SQL MIN()

5.4.2.6.1. The MIN() function returns the smallest value of the selected column.

5.4.2.6.2. Syntax

5.4.2.7. SQL SUM()

5.4.2.7.1. The SUM() function returns the total sum of a numeric column.

5.4.2.7.2. Syntax

5.4.2.8. SQL GROUP BY

5.4.2.8.1. The GROUP BY statement is used in conjunction with the aggregate functions to group the result-set by one or more columns.

5.4.2.8.2. Syntax

5.4.2.9. SQL HAVING

5.4.2.9.1. The HAVING clause was added to SQL because the WHERE keyword could not be used with aggregate functions.

5.4.2.9.2. Syntax

5.4.2.10. SQL UCASE()

5.4.2.10.1. The UCASE() function converts the value of a field to uppercase.

5.4.2.10.2. Syntax

5.4.2.11. SQL LCASE()

5.4.2.11.1. The LCASE() function converts the value of a field to lowercase.

5.4.2.11.2. Syntax

5.4.2.12. SQL MID()

5.4.2.12.1. The MID() function is used to extract characters from a text field.

5.4.2.12.2. Syntax

5.4.2.13. SQL LEN()

5.4.2.13.1. The LEN() function returns the length of the value in a text field.

5.4.2.13.2. Syntax

5.4.2.14. SQL ROUND()

5.4.2.14.1. The ROUND() function is used to round a numeric field to the number of decimals specified.

5.4.2.14.2. Syntax

5.4.2.15. SQL NOW()

5.4.2.15.1. The NOW() function returns the current system date and time.

5.4.2.15.2. Syntax

5.4.2.16. SQL FORMAT()

5.4.2.16.1. The FORMAT() function is used to format how a field is to be displayed.

5.4.2.16.2. Syntax

5.4.2.16.3. Parameters

5.5. ADVANCED

5.5.1. SQL LIKE

5.5.1.1. The LIKE operator is used in a WHERE clause to search for a specified pattern in a column.

5.5.1.2. Code Examples

5.5.1.2.1. The following SQL statement selects all customers with a City starting with the letter "s":

5.5.1.2.2. Tip: The "%" sign is used to define wildcards (missing letters) both before and after the pattern.

5.5.2. SQL Wildcards

5.5.2.1. %

5.5.2.1.1. A substitute for zero or more characters

5.5.2.2. _

5.5.2.2.1. A substitute for a single character

5.5.2.3. [charlist]

5.5.2.3.1. Sets and ranges of characters to match

5.5.2.4. [^charlist] OR [!charlist]

5.5.2.4.1. Matches only a character NOT specified within the brackets

5.5.3. SQL IN

5.5.3.1. The IN operator allows you to specify multiple values in a WHERE clause.

5.5.3.2. Code Examples

5.5.3.2.1. SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...);

5.5.3.2.2. The following SQL statement selects all customers with a City of "Paris" or "London":

5.5.4. SQL BETWEEN

5.5.4.1. The BETWEEN operator is used to select values within a range.

5.5.4.1.1. The values can be numbers, text, or dates.

5.5.4.2. Code Examples

5.5.4.2.1. SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;

5.5.4.2.2. SELECT * FROM Products WHERE Price BETWEEN 10 AND 20;

5.5.4.2.3. NOT BETWEEN Operator Example To display the products outside the range of the previous example, use NOT BETWEEN:

5.5.4.2.4. The following SQL statement selects all products with a price BETWEEN 10 and 20, but products with a CategoryID of 1,2, or 3 should not be displayed:

5.5.4.2.5. BETWEEN Operator with Date Value Example

5.5.4.3. Tips

5.5.4.3.1. Notice that the BETWEEN operator can produce different result in different databases!

5.5.4.3.2. In some databases, BETWEEN selects fields that are between and excluding the test values.

5.5.4.3.3. In other databases, BETWEEN selects fields that are between and including the test values.

5.5.4.3.4. And in other databases, BETWEEN selects fields between the test values, including the first test value and excluding the last test value.

5.5.5. SQL Aliases

5.5.5.1. SQL aliases are used to give a database table, or a column in a table, a temporary name.

5.5.5.1.1. Basically aliases are created to make column names more readable.

5.5.5.2. Code Examples

5.5.5.2.1. SQL Alias Syntax for Columns

5.5.5.2.2. SQL Alias Syntax for Tables

5.5.6. SQL Joins

5.5.6.1. An SQL JOIN clause is used to combine rows from two or more tables, based on a common field between them.

5.5.6.2. The most common type of join is: SQL INNER JOIN (simple join). An SQL INNER JOIN return all rows from multiple tables where the join condition is met.

5.5.6.3. example

5.5.6.3.1. .

5.5.6.3.2. .

5.5.7. SQL FULL JOIN

5.5.7.1. The FULL OUTER JOIN keyword returns all rows from the left table (table1) and from the right table (table2)

5.5.7.2. The FULL OUTER JOIN keyword combines the result of both LEFT and RIGHT joins.

5.5.7.3. Code Examples

5.5.7.3.1. SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name=table2.column_name;

5.5.8. SQL LEFT JOIN

5.5.8.1. The LEFT JOIN keyword returns all rows from the left table (table1), with the matching rows in the right table (table2). The result is NULL in the right side when there is no match.

5.5.8.2. Code Examples

5.5.8.2.1. SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name;

5.5.8.2.2. SELECT column_name(s) FROM table1 LEFT OUTER JOIN table2 ON table1.column_name=table2.column_name;

5.5.9. SQL INNER JOIN

5.5.9.1. The INNER JOIN keyword selects all rows from both tables as long as there is a match between the columns in both tables.

5.5.9.2. Code Examples

5.5.9.2.1. SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name;

5.5.9.2.2. SELECT column_name(s) FROM table1 JOIN table2 ON table1.column_name=table2.column_name;

5.5.9.3. Tips

5.5.9.3.1. INNER JOIN is the same as JOIN.

5.5.10. SQL UNION

5.5.10.1. The UNION operator is used to combine the result-set of two or more SELECT statements.

5.5.10.2. Notice that each SELECT statement within the UNION must have the same number of columns. The columns must also have similar data types. Also, the columns in each SELECT statement must be in the same order.

5.5.10.3. Code Examples

5.5.10.3.1. SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;

5.5.10.4. UNION ALL

5.5.10.4.1. Code Examples

5.5.10.5. Tips

5.5.10.5.1. The UNION operator selects only distinct values by default. To allow duplicate values, use the ALL keyword with UNION.

5.5.11. SQL SELECT INTO

5.5.11.1. The SELECT INTO statement selects data from one table and inserts it into a new table.

5.5.11.2. Code Examples

5.5.11.2.1. SELECT * INTO newtable [IN externaldb] FROM table1;

5.5.11.2.2. SELECT column_name(s) INTO newtable [IN externaldb] FROM table1;

5.5.11.2.3. More Examples

5.5.12. SQL INSERT INTO SELECT

5.5.12.1. The INSERT INTO SELECT statement selects data from one table and inserts it into an existing table. Any existing rows in the target table are unaffected.

5.5.12.2. Code Examples

5.5.12.2.1. We can copy all columns from one table to another, existing table:

5.5.12.2.2. Or we can copy only the columns we want to into another, existing table:

5.5.13. SQL CREATE DB

5.5.13.1. The CREATE DATABASE statement is used to create a database.

5.5.13.2. Code Examples

5.5.13.2.1. SQL CREATE DATABASE Syntax

5.5.13.2.2. The following SQL statement creates a database called "my_db":

5.5.14. SQL CREATE TABLE

5.5.14.1. The CREATE TABLE statement is used to create a table in a database.

5.5.14.2. Tables are organized into rows and columns; and each table must have a name.

5.5.14.3. Code Examples

5.5.14.3.1. CREATE TABLE table_name ( column_name1 data_type(size), column_name2 data_type(size), column_name3 data_type(size), .... );

5.5.14.3.2. The data_type parameter specifies what type of data the column can hold (e.g. varchar, integer, decimal, date, etc.).

5.5.15. SQL Constraints

5.5.15.1. SQL constraints are used to specify rules for the data in a table.

5.5.15.2. If there is any violation between the constraint and the data action, the action is aborted by the constraint.

5.5.15.3. Constraints can be specified when the table is created (inside the CREATE TABLE statement) or after the table is created (inside the ALTER TABLE statement).

5.5.15.4. Code Examples

5.5.15.4.1. SQL CREATE TABLE + CONSTRAINT Syntax

5.5.15.5. Constraint List

5.5.15.5.1. NOT NULL

5.5.15.5.2. UNIQUE

5.5.15.5.3. PRIMARY KEY

5.5.15.5.4. FOREIGN KEY

5.5.15.5.5. CHECK

5.5.15.5.6. DEFAULT

5.5.16. SQL NOT NULL

5.5.16.1. By default, a table column can hold NULL values.

5.5.16.2. The NOT NULL constraint enforces a column to NOT accept NULL values.

5.5.16.3. The NOT NULL constraint enforces a field to always contain a value. This means that you cannot insert a new record, or update a record without adding a value to this field.

5.5.16.4. Code Examples

5.5.16.4.1. The following SQL enforces the "P_Id" column and the "LastName" column to not accept NULL values:

5.5.17. SQL UNIQUE

5.5.17.1. The UNIQUE constraint uniquely identifies each record in a database table.

5.5.17.2. The UNIQUE and PRIMARY KEY constraints both provide a guarantee for uniqueness for a column or set of columns.

5.5.17.3. A PRIMARY KEY constraint automatically has a UNIQUE constraint defined on it.

5.5.17.4. Note that you can have many UNIQUE constraints per table, but only one PRIMARY KEY constraint per table.

5.5.17.5. SQL UNIQUE Constraint on CREATE TABLE

5.5.17.5.1. Code Examples The following SQL creates a UNIQUE constraint on the "P_Id" column when the "Persons" table is created:

5.5.17.6. SQL UNIQUE Constraint on ALTER TABLE

5.5.17.6.1. To create a UNIQUE constraint on the "P_Id" column when the table is already created, use the following SQL:

5.5.17.7. DROP Unique Constraint

5.5.17.7.1. MySQL

5.5.17.7.2. SQL Server / Oracle / MS Access:

5.5.18. SQL PRIMARY KEY

5.5.18.1. The PRIMARY KEY constraint uniquely identifies each record in a database table.

5.5.18.2. Primary keys must contain unique values.

5.5.18.3. A primary key column cannot contain NULL values.

5.5.18.4. Each table should have a primary key, and each table can have only ONE primary key.

5.5.18.5. SQL PRIMARY KEY Constraint on CREATE TABLE

5.5.18.5.1. The following SQL creates a PRIMARY KEY on the "P_Id" column when the "Persons" table is created:

5.5.18.6. SQL PRIMARY KEY Constraint on ALTER TABLE

5.5.18.6.1. To create a PRIMARY KEY constraint on the "P_Id" column when the table is already created, use the following SQL:

5.5.18.6.2. Note: If you use the ALTER TABLE statement to add a primary key, the primary key column(s) must already have been declared to not contain NULL values (when the table was first created).

5.5.18.7. To DROP a PRIMARY KEY Constraint

5.5.18.7.1. MySQL:

5.5.19. SQL FOREIGN KEY

5.5.19.1. A FOREIGN KEY in one table points to a PRIMARY KEY in another table.

5.5.19.2. The FOREIGN KEY constraint is used to prevent actions that would destroy links between tables.

5.5.19.3. The FOREIGN KEY constraint also prevents invalid data from being inserted into the foreign key column, because it has to be one of the values contained in the table it points to.

5.5.19.4. Code Examples

5.5.19.4.1. SQL FOREIGN KEY Constraint on CREATE TABLE - The following SQL creates a FOREIGN KEY on the "P_Id" column when the "Orders" table is created:

5.5.19.4.2. SQL FOREIGN KEY Constraint on ALTER TABLE To create a FOREIGN KEY constraint on the "P_Id" column when the "Orders" table is already created, use the following SQL:

5.5.19.4.3. To DROP a FOREIGN KEY Constraint

5.5.20. SQL CHECK

5.5.20.1. The CHECK constraint is used to limit the value range that can be placed in a column.

5.5.20.2. If you define a CHECK constraint on a single column it allows only certain values for this column.

5.5.20.3. If you define a CHECK constraint on a table it can limit the values in certain columns based on values in other columns in the row.

5.5.20.4. Code Examples

5.5.20.4.1. SQL CHECK Constraint on CREATE TABLE

5.5.20.4.2. SQL CHECK Constraint on ALTER TABLE

5.5.20.4.3. To DROP a CHECK Constraint

5.5.21. SQL DEFAULT

5.5.21.1. The DEFAULT constraint is used to insert a default value into a column.

5.5.21.2. The default value will be added to all new records, if no other value is specified.

5.5.21.3. Code Examples

5.5.21.3.1. SQL DEFAULT Constraint on CREATE TABLE

5.5.21.3.2. SQL DEFAULT Constraint on ALTER TABLE

5.5.21.3.3. To DROP a DEFAULT Constraint

5.5.22. SQL CREATE INDEX

5.5.22.1. An index can be created in a table to find data more quickly and efficiently.

5.5.22.2. The users cannot see the indexes, they are just used to speed up searches/queries.

5.5.22.3. Updating a table with indexes takes more time than updating a table without (because the indexes also need an update). So you should only create indexes on columns (and tables) that will be frequently searched against.

5.5.22.4. Code Examples

5.5.22.4.1. Creates an index on a table. Duplicate values are allowed:

5.5.22.4.2. Creates a unique index on a table. Duplicate values are not allowed:

5.5.22.4.3. Create an index on a table on multilple columns

5.5.22.4.4. CREATE INDEX Example

5.5.23. SQL DROP

5.5.23.1. The DROP INDEX statement is used to delete an index in a table.

5.5.23.2. Syntax

5.5.23.2.1. DROP INDEX Syntax for MS Access:

5.5.23.2.2. DROP INDEX Syntax for MS SQL Server:

5.5.23.2.3. DROP INDEX Syntax for DB2/Oracle:

5.5.23.2.4. DROP INDEX Syntax for MySQL:

5.5.23.3. The DROP TABLE Statement

5.5.23.3.1. The DROP TABLE statement is used to delete a table.

5.5.23.4. The DROP DATABASE Statement

5.5.23.4.1. The DROP DATABASE statement is used to delete a database.

5.5.23.5. The TRUNCATE TABLE Statement

5.5.23.5.1. What if we only want to delete the data inside the table, and not the table itself?

5.5.23.5.2. Then, use the TRUNCATE TABLE statement:

5.5.24. SQL ALTER

5.5.24.1. The ALTER TABLE statement is used to add, delete, or modify columns in an existing table.

5.5.24.2. Code Examples

5.5.24.2.1. To add a column in a table, use the following syntax:

5.5.24.2.2. To delete a column in a table, use the following syntax (notice that some database systems don't allow deleting a column):

5.5.24.2.3. To change the data type of a column in a table, use the following syntax:

5.5.24.2.4. Now we want to change the data type of the column named "DateOfBirth" in the "Persons" table.

5.5.24.2.5. Next, we want to delete the column named "DateOfBirth" in the "Persons" table.

5.5.25. SQL Auto Increment

5.5.25.1. Very often we would like the value of the primary key field to be created automatically every time a new record is inserted.

5.5.25.2. We would like to create an auto-increment field in a table.

5.5.25.3. The following SQL statement defines the "ID" column to be an auto-increment primary key field in the "Persons" table:

5.5.25.3.1. Code Examples

5.5.25.3.2. Syntax for SQL Server

5.5.25.3.3. Syntax for Access

5.5.25.3.4. Syntax for Oracle

5.5.26. SQL Views

5.5.26.1. Định nghĩa

5.5.26.1.1. định nghĩa

5.5.26.1.2. Một khung nhìn luôn hiển thị dữ liệu mới nhất! Công cụ cơ sở dữ liệu tạo lại dữ liệu, sử dụng câu lệnh SQL của khung nhìn, mỗi khi người dùng truy vấn một khung nhìn.

5.5.26.1.3. You can add SQL functions, WHERE, and JOIN statements to a view and present the data as if the data were coming from one single table.

5.5.26.2. Nguyên tắc tạo view

5.5.26.2.1. nguyên tắc

5.5.26.3. Các loại view

5.5.26.3.1. Standard View

5.5.26.3.2. Indexed View

5.5.26.3.3. Partitioned View

5.5.26.4. SQL CREATE VIEW Syntax

5.5.26.4.1. CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition

5.5.26.4.2. with schemabinding

5.5.26.5. SQL CREATE VIEW Examples

5.5.26.5.1. The view "Current Product List" lists all active products (products that are not discontinued) from the "Products" table. The view is created with the following SQL:

5.5.26.5.2. We can query the view above as follows:

5.5.26.5.3. Another view in the Northwind sample database selects every product in the "Products" table with a unit price higher than the average unit price:

5.5.26.5.4. We can query the view above as follows:

5.5.26.5.5. Another view in the Northwind database calculates the total sale for each category in 1997. Note that this view selects its data from another view called "Product Sales for 1997":

5.5.26.5.6. We can query the view above as follows:

5.5.26.5.7. We can also add a condition to the query. Now we want to see the total sale only for the category "Beverages":

5.5.26.6. Điều kiện để có thể cập nhật, sửa, xóa

5.5.26.6.1. điều kiện

5.5.26.7. SQL Updating a View

5.5.26.7.1. SQL CREATE OR REPLACE VIEW Syntax

5.5.26.7.2. Now we want to add the "Category" column to the "Current Product List" view. We will update the view with the following SQL:

5.5.26.7.3. rename

5.5.26.8. SQL Dropping a View

5.5.26.8.1. DROP VIEW view_name

5.5.27. SQL NULL Values

5.5.27.1. If a column in a table is optional, we can insert a new record or update an existing record without adding a value to this column. This means that the field will be saved with a NULL value.

5.5.27.2. NULL values are treated differently from other values.

5.5.27.3. NULL is used as a placeholder for unknown or inapplicable values.

5.5.27.4. Note Note: It is not possible to compare NULL and 0; they are not equivalent.

5.5.27.5. Code Examples

5.5.27.5.1. SQL IS NULL

5.5.27.5.2. SQL IS NOT NULL

5.5.28. SQL Dates

5.5.28.1. MySQL Date Functions

5.5.28.1.1. NOW()

5.5.28.1.2. CURDATE()

5.5.28.1.3. CURTIME()

5.5.28.1.4. DATE()

5.5.28.1.5. EXTRACT()

5.5.28.1.6. DATE_ADD()

5.5.28.1.7. DATE_SUB()

5.5.28.1.8. DATEDIFF()

5.5.28.1.9. DATE_FORMAT()

5.5.28.2. SQL Server Date Functions

5.5.28.2.1. GETDATE()

5.5.28.2.2. DATEPART()

5.5.28.2.3. DATEADD()

5.5.28.2.4. DATEDIFF()

5.5.28.2.5. CONVERT()

5.5.28.3. .

5.5.29. SQL NULL Functions

5.5.29.1. Used to specify values for NULL cells as to not interrupt calculations

5.5.29.2. Code Examples

5.5.29.2.1. SQL Server / MS Access

5.5.29.2.2. Oracle

5.5.29.2.3. MySQL

6. Lý thuyết

6.1. Giới thiệu

6.1.1. Quản lý dữ liệu

6.1.2. 2 phương pháp quản lý dữ liệu:

6.1.2.1. Hệ thống quản lý bằng file

6.1.2.1.1. Dữ liệu được lưu trữ trong các file riêng biệt

6.1.2.1.2. Ví dụ: các chương trình lưu trữ thông tin bằng hệ thống các file dạng text

6.1.2.1.3. Nhược điểm của việc quản lý bằng file:

6.1.2.2. Hệ thống quản lý bằng CSDL

6.1.2.2.1. Ưu điểm của hệ thống quản lý bằng CSDL:

6.2. Thuật ngữ

6.2.1. Dữ liệu

6.2.1.1. Dữ liệu (data) Là các thông tin của đối tượng (ví dụ: người, vật, một khái niệm, sự việc…) được lưu trữ trên máy tính. Có thể truy nhập vào dữ liệu để trích xuất ra các thông tin.

6.2.1.2. Dữ liệu được mô tả dưới nhiều dạng khác nhau (các ký tự, ký số, hình ảnh, ký hiệu, âm thanh…). Mỗi cách mô tả như vậy gắn với một ngữ nghĩa nào đó.

6.2.1.3. Dữ liệu về đối tượng có thể khác nhau, tùy thuộc vào ngữ cảnh.

6.2.1.4. Ví dụ: dữ liệu về đối tượng sinh viên có thể khác nhau tùy vào mục đích quản lý: Quản lý điểm: Tên, mã sinh viên, điểm môn 1, điểm môn 2, điểm môn 3 Quản lý nhân thân: Tên, địa chỉ, ngày sinh, quê quán, lớp

6.2.2. Information (thông tin)

6.2.2.1. dữ liệu đã được xử lý

6.2.3. Thể hiện CSDL (Database Instance)

6.2.3.1. Là dữ liệu hiện thời được lưu trữ trong CSDL ở một thời điểm nào đó

6.2.4. Lược đồ CSDL (Database Schema)

6.2.4.1. Là các mô tả về cấu trúc và ràng buộc trên CSDL

6.2.5. Lược đồ quan hệ (relation schema)

6.2.5.1. xác định tên của quan hệ , tên và kiểu dữ liệu của thuộc tính của quan hệ. ký hiệu R(A1, A2, ..., An)

6.2.5.1.1. A1, A2, ..., An: danh sách các thuộc tính

6.2.5.1.2. R là tên của quan hệ

6.2.6. thể hiện của quan hệ (relation instance)

6.2.6.1. là 1 bảng giá trị gồm các dòng các cột tại 1 thời điểm

6.2.7. Hệ quản trị CSDL quan hệ (Relational DataBase ManagementSystem = RDBMS)

6.2.8. RDBMS là một dạng DBMS được sử dụng phổ biến nhất, trong đó tất cả dữ liệu được tổ chức chặt chẽ dưới dạng các bảng dữ liệu.

6.2.9. Tất cả các thao tác trên CSDL đều diễn ra trên các bảng.

6.2.10. Chú ý

6.2.10.1. bảng = relation

6.2.10.2. 1 dòng = row = record= tuple

6.2.10.3. cột = attribute = field

6.2.10.4. Số lượng các cột trong bảng được gọi là bậc (degree) của bảng

6.2.10.5. Một cột hoặc tập hợp một số cột xác định duy nhất một dòng bên trong bảng được gọi là khóa chính của bảng (primary key)

6.3. Tương tác cơ sở dữ liệu

6.3.1. Hệ quản trị CSDL (DBMS)

6.3.1.1. DBMS là phần mềm tương tác với người dùng cuối, ứng dụng và chính cơ sở dữ liệu để thu thập và phân tích dữ liệu. Phần mềm DBMS bao gồm các tiện ích cốt lõi được cung cấp để quản trị cơ sở dữ liệu

6.3.1.1.1. Ví dụ:SQL Server, Microsoft Access, Oracle là các hệ quản trị CSDLđiển hình cho mô hình quan hệ.IMS của IBM là hệ quản trị CSDL cho mô hình phân cấp IDMS là hệ quản trị CSDL cho mô hình mạng

6.3.1.2. Tính năng lợi ích

6.3.1.2.1. Quản trị các CSDL

6.3.1.2.2. Cung cấp giao diện truy cập( API) để che dấu các đặc tính phức tạp về mặt cấu trúc tổ chức dữ liệu vật lý

6.3.1.2.3. Hỗ trợ các ngôn ngữ giao tiếp.

6.3.1.2.4. Có cơ chế an toàn, bảo mật cao

6.3.1.2.5. Kiểm soát được tính dư thừa và nhất quán của dữ liệu

6.3.1.2.6. Hạn chế những truy cập không cho phép

6.3.1.2.7. Truy cập đồng thời

6.3.1.2.8. Cung cấp các tiện ích cho sử dụng

6.3.1.2.9. Đảm bảo các ràng buộc toàn vẹn

6.3.1.2.10. Khả năng sao lưu và hồi phục

6.3.1.2.11. Các tính năng khác

6.3.1.3. Tại sao lại tập trung vào CSDL quan hệ?

6.3.1.3.1. Dễ dàng định nghĩa, duy trì và thao tác dữ liệu lưu trữ

6.3.1.3.2. Trích xuất dữ liệu dễ dàng

6.3.1.3.3. Dữ liệu được chuẩn hóa và được bảo vệ tốt

6.3.1.3.4. Nhiều nhà cung cấp cung cấp phần mềm

6.3.1.3.5. Dễ dàng chuyển đổi giữa nhà cung cấp và nhà triển khai

6.3.1.3.6. RDBMS là các sản phẩm trưởng thành và ổn định

6.3.1.4. phân loại DBMS

6.3.1.4.1. DBMS Cá nhân

6.3.1.4.2. DBMS Doanh nghiệp

6.3.1.5. Lịch sử

6.3.1.5.1. Những năm 1960, DBMS điều hướng

6.3.1.5.2. Những năm 1970, DBMS quan hệ

6.3.1.5.3. Phương pháp tích hợp

6.3.1.5.4. Cuối những năm 1970, SQL DBMS

6.3.1.5.5. Những năm 1980, trên máy tính để bàn

6.3.1.5.6. Những năm 1990, hướng đối tượng

6.3.1.5.7. Những năm 2000, NoSQL và NewSQL

6.3.2. Ứng dụng (Application)

6.3.2.1. Tương tác bên ngoài với cơ sở dữ liệu sẽ thông qua một chương trình ứng dụng có giao diện với DBMS.[28] Điều này có thể bao gồm từ một công cụ cơ sở dữ liệu cho phép người dùng thực hiện các truy vấn SQL bằng văn bản hoặc bằng đồ họa, đến một trang web tình cờ sử dụng cơ sở dữ liệu để lưu trữ và tìm kiếm thông tin.

6.3.3. Giao diện chương trình ứng dụng (API)

6.3.3.1. Một lập trình viên sẽ lập trình các tương tác vào cơ sở dữ liệu (đôi khi được gọi là nguồn dữ liệu) thông qua giao diện chương trình ứng dụng (API) hoặc thông qua ngôn ngữ cơ sở dữ liệu. API hoặc ngôn ngữ cụ thể được chọn sẽ cần được DBMS hỗ trợ, có thể gián tiếp thông qua bộ xử lý trước hoặc API bắc cầu. Một số API nhằm mục đích độc lập với cơ sở dữ liệu, ODBC là một ví dụ thường được biết đến. Các API phổ biến khác bao gồm JDBC và ADO.NET.

6.3.4. Ngôn ngữ cơ sở dữ liệu

6.3.4.1. Ngôn ngữ cơ sở dữ liệu là ngôn ngữ có mục đích đặc biệt, cho phép một hoặc nhiều tác vụ sau, đôi khi được phân biệt là ngôn ngữ con:

6.3.4.2. Ngôn ngữ định nghĩa dữ liệu (DDL)

6.3.4.2.1. xác định các loại dữ liệu như tạo, thay đổi hoặc xóa và các mối quan hệ giữa chúng

6.3.4.3. Ngôn ngữ kiểm soát dữ liệu (DCL)

6.3.4.3.1. kiểm soát truy cập dữ liệu

6.3.4.3.2. Cung cấp các tính năng bảo vệ cho các đối tượng của CSDL

6.3.4.3.3. Các câu lệnh SQL tương ứng: GRANT và REVOKE.

6.3.4.4. Ngôn ngữ thao tác dữ liệu (DML)

6.3.4.4.1. Cho phép truy xuất, thêm, xóa, sửa dữ liệu

6.3.4.4.2. Mức cao (phi thủ tục)

6.3.4.4.3. Mức thấp (thủ tục)

6.3.4.4.4. Ví dụ

6.3.4.5. Ngôn ngữ truy vấn dữ liệu (DQL)

6.3.4.5.1. cho phép tìm kiếm thông tin và tính toán thông tin dẫn xuất