Database và một số khái niệm cơ bản

21 0 0
Database và một số khái niệm cơ bản

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

A, DATABASE VÀ MỘT SỐ KHÁI NIỆM CƠ BẢN1, Tổng Quan Về Database Và Relationship Db

- “Data is a collection of discrete values that convey information”

- Trong khoa học máy tính, dữ liệu là thông tin đã được chuyển sang biểu diễn và lưu trữ ở các định dạng tệp: Video, Image, Sound, Text,

=> Thông tin phải được viết ra, hệ thống và phải lưu lại rồi thì mới được coi là Data

- Cơ sở dữ liệu là một hệ thống các dữ liệu có cấu trúc được lưu trữ trên các thiết bị lưu trữ thông tin thứ cấp (băng đĩa, ) nhằm phục vụ yêu cầu khai thác thông tin

=> Dữ liệu sẽ được thêm mới hằng ngày nên cần có CSDL để tổ chức lại một các có hệ thống, từ đó dễ dàng truy vấn

- CSDL phải là một tập hợp các thông tin mang tính hệ thống chứ không phải thông tin rời rạc không có mối quan hệ với nhau Các thông tin này phải có khả năng đáp ứng các như cầu khai thác của nhiều người sử dụng một cách đồng thời

=> CSDL là một hệ thống có cấu trúc để lưu trữ dữ liệu và cho phép xác định, thực hiện các quy tắc sử dụng dữ liệu đó

Relationship Database – RDB

- Cơ sở dữ liệu có nhiều cách tổ chức, trong đó cách hiệu quả nhất là tổ chức theo mô hình quan hệ do tiến sĩ E.F.Code người Đức đề xuất năm 1969 và người ta gọi đó là cơ sở dữ liệu quan hệ - “CSDL quan hệ tổ chức dữ liệu theo các bảng và có

quan hệ với nhau để giảm thiểu sự dư thừa dữ liệu đồng thời vẫn đảm bảo sự hiệu quả trong lưu trữ và truy xuất dữ liệu”

- Ngày nay, csdl quan hệ được dùng trong hầu hết các hệ thống phần mềm từ kế toán, ngân hàng, doanh nghiệp,

Trang 2

2, Bảng (Table), Bản ghi (Record), Cột (Column)

- Bảng: HOCSINH (1 bảng quản lý nhiều thông tin của các học sinh khác nhau), (1 bảng sẽ bao

gồm nhiều Records)

=> Bảng (table) có dạng cấu trúc hàng cột, mỗi cột của bảng gọi là trường hoặc thuộc tính, mỗi hàng của bảng là một bản ghi đại diện cho thực thể trong thực tế -> với mỗi trường thì giá trị của chúng là đặc trưng khác nhau dẫn đến mỗi trường có loại dữ liệu khác nhau

=> Bảng trong database có thể chứa nhiều cột thông tin Thông thường, mỗi cột trong bảng sẽ chứa dữ liệu về một thuộc tính cụ thể của đối tượng được mô tả trong bảng đó Ví dụ, bảng thông tin khách hàng có thể bao gồm các cột như Tên, Địa chỉ, Email, Số điện thoại, và Tên công ty Do đó, bảng có thể chứa nhiều cột thông tin khác nhau để lưu trữ thông tin về đối tượng tương ứng.

- Record: Dữ liệu về một học sinh cụ thể- Field – Trường dữ liệu – Cột: Các thuộc tính

3, Ràng buộc dữ liệu (Constraint) => Áp dụng cho cột/ trường dữ liệu

- Constraint là những quy tắc được áp dụng trên các cột dữ liệu, trên bảng

- Ràng buộc được sử dụng để kiểm soát các giá trị được chèn hoặc cập nhật trong cột của bảng, đảm bảo rằng chúng đáp ứng các quy định và yêu cầu của ứng dụng.

=> Quy chuẩn dữ liệu được áp dụng cho 1 trường dữ liệu bị ràng buộc (điều kiện cần có đối với trường dữ liệu – ví dụ: trường dữ liệu/ cột “Mã sinh viên” không được để trống)

Một số loại ràng buộc mà MySQL hỗ trợ:

Trang 3

 Ràng buộc PRIMARY KEY: đảm bảo rằng các giá trị trong cột được xác định là duy nhất và không được phép null (rỗng).

 Ràng buộc FOREIGN KEY: định nghĩa một mối quan hệ giữa hai bảng và đảm bảo rằng các giá trị trong cột của bảng tham chiếu phải tồn tại trong cột của bảng được tham chiếu  Ràng buộc NOT NULL: đảm bảo rằng giá trị của một cột không được phép null (rỗng)  Ràng buộc CHECK: đảm bảo rằng các giá trị trong cột của bảng phải đáp ứng một số

điều kiện nhất định.

- NOT NULL: Không được nhận giá trị Null (không được để trống ~ Null = rỗng) - UNIQUE: Mỗi giá trị tại Record phải là duy nhất

- PRIMARY KEY = NOT NULL + UNIQUE (Khóa chính) - FOREIGN KEY: Khóa ngoại

- CHECK: đáp ứng trường dữ liệu đó chỉ nhận giới hạn dữ liệu nào – ví dụ: trường dữ liệu “Giới tính” chỉ nhận duy nhất 1 trong các giá trị: Nam, Nữ, Khác

- DEFAULT: Khi không khai báo dữ liệu ở 1 trường dữ liệu nào đó – hiện giá trị Default

4, Ràng buộc NOT NULL

- NULL là một giá trị đặc biệt có mặt trong tất cả

các loại dữ liệu, từ kiểu số, ngày, chuỗi đến bit - Nó đại diện cho giá trị “Không biết”, hoặc “Không tồn tại”

- NULL không trùng với số 0 của kiểu số (số 0 là giá trị = 0) và cũng không trùng với chuỗi trống (“”) của kiểu chuỗi ký tự

- Ràng buộc NOT NULL trong MySQL được sử dụng để đảm bảo rằng giá trị của một cột trong bảng không được phép null (rỗng).

=> NULL là 1 giá trị không biết, không tồn tại hoặc không được định nghĩa

- Nếu trường dữ liệu có ràng buộc NOT NULL thì trường dữ liệu không được phép nhận giá trị NULL ở bất cứ Record nào (Nullable = No)

Trang 4

Khi tạo bảng, bạn có thể thêm ràng buộc NOT NULL cho một cột như sau:

- CREATE TABLE table_name ( column1 datatype NOT NULL, column2 datatype, ); Hoặc, bạn có thể thêm ràng buộc NOT NULL cho một cột trong bảng đã tồn tại bằng cách sử dụng câu lệnh ALTER TABLE như sau:

- ALTER TABLE table_name MODIFY column_name datatype NOT NULL;

Nếu bạn cố gắng chèn hoặc cập nhật một dòng trong bảng mà giá trị của cột có ràng buộc NOT NULL là null, MySQL sẽ trả về lỗi Ràng buộc NOT NULL được sử dụng để đảm bảo rằng các giá trị trong cột sẽ luôn được cung cấp và không được bỏ trống.

5, Ràng buộc UNIQUE (Giá trị duy nhất – Unique key)

- UNIQUE là ràng buộc trên giá trị duy nhất trên column, có nghĩa là các dòng dữ liệu không được có giá trị trùng nhau ở column đó

- Tuy nhiên trong cột đó thì được 1 lần xuất hiện giá trị NULL

- Ví dụ ở bảng trên, đối với cột “Phone number”, các giá trị phải là duy nhất bởi mỗi người sẽ có 1 số điện thoại khác nhau; Ngoài ra ở cột này được phép xuất hiện duy nhất 1 lần giá trị NULL (trống)

- Giả sử bạn có một bảng dữ liệu "Users" lưu trữ thông tin người dùng, trong đó có một cột "Email" được đánh dấu là ràng buộc unique Khi bạn thêm một người dùng mới vào bảng, hệ thống sẽ kiểm tra giá trị của email của người dùng đó Nếu email này đã tồn tại trong bảng, hệ thống sẽ không cho phép bạn thêm người dùng mới này vào, vì nó vi phạm tính toàn vẹn dữ liệu của ràng buộc unique Như vậy, bạn có thể đảm bảo rằng không có hai người dùng nào có cùng địa chỉ email trong bảng "Users" Tính toàn vẹn của dữ liệu sẽ được đảm bảo và tránh được việc lưu trữ dữ liệu trùng lặp, giúp cho việc tìm kiếm và sử dụng dữ liệu dễ dàng và hiệu quả hơn.

Trang 5

6, Một số Data-type thường dùng trong SQL

* Field được xác định bởi 3 yếu tố:

 Tên của trường dữ liệu (không đươc trùng nhau)  Kiểu dữ liệu của trường dữ liệu

 Ràng buộc dữ liệu của trường dữ liệu

*

Các kiểu dữ liệu trong trường dữ liệu:

- Dạng số: integer (số nguyên); float (số thực: 0.2; 1.5;….); double - Dạng chuỗi, ký tự: varchar, nvarchar (chuỗi ký tự); char (ký tự đơn)- Ngày tháng: Date, datetime, time

- Logic/Boolean: True or False

Ví dụ: Trong DDL

- Cột “RowID”, kiểu dữ liệu varchar(255) (chuỗi ký tự nhận tối đa 255 ký tự ở 1 giá trị tại 1 Record), Ràng buộc NOT NULL (không được để trống)

tự nhận tối đa 255 ký tự ở 1 giá trị tại 1 Record), Ràng buộc DEFAULT NULL (nếu không nhập giá trị cho cột này thì có thể để trống được)

- Cột “Order_Date”, kiểu dữ liệu date (ngày tháng năm), Ràng buộc DEFAULT NULL (nếu không nhập giá trị cho cột này thì có thể để trống được) - Cột “Discount”, kiểu dữ liệu float (số thực – có phẩy), Ràng buộc DEFAULT NULL (nếu không nhập giá trị cho cột này thì có thể để trống được)

- Cột “Sales”, kiểu dữ liệu int(11) (số nguyên tối đa 11 ký tự), Ràng buộc DEFAULT NULL (nếu không nhập giá trị cho cột này thì có thể để trống được)

B, GIỚI THIỆU NGÔN NGỮ SQL7, Giới thiệu về SQL và MySQL

a, Mô hình thứ cấp mối quan hệ giữa hệ quản trị cơ sở dữ liệu, cơ sở dữ liệu, bảng và bản ghi

Trang 6

- Hệ quản trị cơ sở dữ liệu là một phần mềm để quản lý các bảng, các database, nhiều cơ sở dữ liệu

b, SQL

- SQL (Structured Query Language) – Ngôn ngữ truy vấn và thao tác dữ liệu  Định nghĩa cấu trúc dữ liệu

 Thêm, sửa, xóa dữ liệu  Truy vấn dữ liệu

- Định nghĩa dữ liệu DDL – Data Definition Language (ngôn ngữ định nghĩa)  Create Database, Drop Database

 Create Table, Alter Table, Drop Table

- Thao tác dữ liệu DML – Data Manipulation Language (Ngôn ngữ thao tác dữ liệu)  Select, Insert, Update, Delete

c, MySQL

- Là một DBMS – hệ quản trị cơ sở dữ liệu, MySQL quản lý một hoặc nhiều cơ sở dữ liệu có quan hệ với nhau

- Là một phần mềm – cài đặt trên 1 sever

8, Câu lệnh DDL – Định nghĩa dữ liệu

- DDL viết tắt của Ngôn ngữ định nghĩa dữ liệu – định nghĩa, xác định các nhóm lưu trữ (Database – cơ sở dữ liệu), cấu trúc hay các đối tượng (Table) trong cơ sở dữ liệu

- Câu lệnh này dùng để làm việc với Database - Các nhóm lệnh chính:

Trang 7

a, DDL với Database

- CREATE [DATABASE_NAME]: Thành lập sơ sở dữ liệu SQL mới Các cơ sở dữ liệu này là

thư mục con cùng tên chứa bảng vật lý và các tệp chỉ mục.

- DROP [DATABASE_NAME]: Trái ngược với CREATE DATABASE, nó dùng để hủy bỏ cơ sở dữ liệu tại một vị trí nhất định Ngoài ra, cũng xóa thư mục con ngay cả khi nó trống và không chứa đối tượng được liên kết hợp lý với cơ sở dữ liệu.

- ALTER [DATABASE_NAME]: Thay đổi các tham số thông tin của cơ sở dữ liệu tại vị trí máy chủ XDB (nơi lưu trữ cơ sở dữ liệu hiện tại)

a, DDL với Table

- CREATE [TABLE_NAME]: Tạo bảng bằng việc xác định cột, kiểu dữ liệu và tham số bảng

- DROP [TABLE_NAME]: Xóa bỏ định nghĩa bảng cũng như chỉ mục, dạng xem và các ràng buộc trong bảng đó

- ALTER [TABLE_NAME]: Thêm, chỉnh sửa, xóa, đổi tên và kiểu dữ liệu của cột Nó xóa bỏ các ràng buộc unique, check, primary Đây cũng là câu lệnh thực thi tính toàn vẹn miền và các ràng buộc về tính duy nhất

9, Câu lệnh DML – Thao tác dữ liệu

- Câu lệnh này dùng để làm việc với các Records

- DML là viết tắt của ngôn ngữ thao tác dữ liệ, là những câu lệnh truy vấn, thêm xóa sửa được áp dụng lên một hoặc nhiều Records:

 INSERT: Thêm mới dữ liệu vào một bản trong cơ sở dữ liệu  UPDATE: Sửa đổi dữ liệu trong một bảng

 DELETE: Xóa dòng dữ liệu trong bảng

SELECT *: Truy vấn dữ liệu (câu lệnh chủ yếu của DA)\

CREATE (tạo)DROP (xóa)ALTER (cập nhật)

Trang 8

C, DỮ LIỆU ĐƯỢC TẠO RA TRONG DATABASE NHƯ THẾ NÀO ?10, Xây dựng cấu trúc bảng để lưu trữ dữ liệu với câu lệnh CREATE

* Các câu lệnh khác với CREATE TABLE

 CREATE DATABASE: được sử dụng để tạo một cơ sở dữ liệu mới Sau khi tạo cơ sở dữ liệu, ta có thể sử dụng lệnh USE database_name để chuyển đổi sang cơ sở dữ liệu đó và sử dụng các câu lệnh khác như CREATE TABLE, INSERT, SELECT, vv.

 CREATE SCHEMA: tương tự như CREATE DATABASE, được sử dụng để tạo một cơ sở dữ liệu mới Tuy nhiên, CREATE SCHEMA thường được sử dụng để tạo schema trong MySQL Workbench và các công cụ quản lý cơ sở dữ liệu khác.

 CREATE INDEX: được sử dụng để tạo một index trên một hoặc nhiều cột của bảng Một index được sử dụng để tăng tốc độ truy xuất dữ liệu từ cơ sở dữ liệu Nói cách khác, khi tạo index, MySQL sẽ tổ chức dữ liệu trong bảng theo cách thức mới để cho phép tìm kiếm nhanh hơn.

* Từ khoá nào được sử dụng để đặt khóa ngoại cho một cột trong câu lệnh CREATE TABLE

Trang 9

Từ khoá REFERENCES được sử dụng để đặt khóa ngoại cho một cột trong câu lệnh CREATE TABLE Khi sử dụng REFERENCES, ta chỉ ra tên bảng và tên cột mà cột khóa ngoại sẽ tham chiếu đến Ví dụ:

CREATE TABLE orders (

order_id INT NOT NULL, customer_id INT, order_date DATE, PRIMARY KEY (order_id),

FOREIGN KEY (customer_id)

REFERENCES customers(customer_id) );

Trong ví dụ trên, cột customer_id được định nghĩa là khóa ngoại đến cột customer_id trong bảngcustomers Khi thêm dữ liệu vào bảng orders, giá trị trong cột customer_id phải tồn tại trong cột customer_id của bảng customers Nếu không, sẽ xảy ra lỗi khi thêm dữ liệu.

* Từ khoá nào được sử dụng để đặt giá trị mặc định cho một cột trong câu lệnh CREATE TABLE?

Từ khoá DEFAULT được sử dụng để đặt giá trị mặc định cho một cột trong câu lệnh CREATE TABLE Khi sử dụng DEFAULT, ta chỉ ra giá trị mặc định cho cột đó Ví dụ:

CREATE TABLE employees ( id INT NOT NULL,

name VARCHAR(50) NOT NULL, salary INT DEFAULT 0, hire_date DATE,

PRIMARY KEY (id) );

Trong ví dụ trên, cột salary được định nghĩa với giá trị mặc định là 0 Khi thêm dữ liệu vào bảng employees và không cung cấp giá trị cho cột salary, giá trị mặc định 0 sẽ được sử dụng.

* Một số câu lệnh đối với CREATE và DROP

 Lệnh CREATE

Tạo bảng students với các cột id, name, và age: CREATE TABLE students (

id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL,

age INT NOT NULL );

Câu lệnh này tạo một bảng mới có tên students với ba cột: id, name, và age Cột id có kiểu số nguyên, là khóa chính và có giá trị tự động tăng.

Cột namecó kiểu chuỗi và không thể có giá trị NULL Cột agecó kiểu số nguyên và không thể có giá trị NULL.

Trang 10

Tạo bảng students với các cột id, name, và age: CREATE TABLE students (

id INT PRIMARY KEY, name VARCHAR(255), age INT DEFAULT 10 );

Câu lệnh này tạo một bảng mới có tên students với ba cột: id, name, và age Cột id có kiểu số nguyên, là khóa chính.

Cột namecó kiểu chuỗi.

Cột agecó kiểu số nguyên có giá trị mặc định là 10  Lệnh ALTER

Thêm cột gender vào bảng students:

ALTER TABLE students ADD gender VARCHAR(100);

Câu lệnh trên thêm một cột mới có tên gender vào bảng students Cột này có kiểu dữ liệu là VARCHAR(kiểu chuỗi) và có thể chứa tối đa 100 ký tự Xóa cột age khỏi bảng students:

ALTER TABLE students DROP COLUMN age;

Để xóa một cột trong bảng ta sử dụng kết hợp lệnh ALTER và DROP Câu lệnh trên xóa cột age ra khỏi bảng students.

Đổi kiểu dữ liệu của cột age từ INT sang VARCHAR(3) ALTER TABLE students MODIFY age VARCHAR(3); Đổi tên bảng student thành bảng hoc_sinh:

ALTER TABLE student RENAME TO hoc_sinh;  Lệnh DROP

Xóa bảng students: DROP TABLE students;

Để xóa một bảng, ta sử dụng lệnh DROP ( Không cần kết hợp với ALTER) Để tránh bị lỗi khi bảng không tồn tại, ta có thể sử dụng lệnh sau để xóa bảng students:

DROP TABLE IF EXISTS students

Khi sử dụng câu lệnh này, nếu students không tồn tại, MySQL sẽ không sinh ra lỗi và sẽ tiếp tục thực thi câu lệnh tiếp theo (nếu có) Trong trường hợp bảng tồn tại, nó sẽ được xóa.

11, Câu lệnh thay đổi thông tin bảng (ALTER TABLE)

Trang 11

- Lệnh ALTER TABLE trong SQL được sử dụng để thêm, xóa hoặc sửa đổi các cột trong bảng đang tồn tại

- Sử dụng lệnh ALTER TABLE để thêm và xóa các ràng buộc (Constraint) trên một bảng đang tồn tại

- Sử dụng câu lệnh để đổi tên bảng:

 RENAME TABLE: ALTER TABLE old_table_name RENAME TO new_table_name;

 Hoặc RENAME TO: RENAME TABLE old_table_name TO new_table_name;

* Lệnh thao tác với cột

- Thêm: ALTER TABLE table_name ADD column_name ~ data_type - Xóa: ALTER TABLE table_name DROP COLUMN column_name

- Sửa: ALTER TABLE Table_name ALTER COLUMN column_name TYPE data_type - Thay đổi kiểu dữ liệu: ALTER TABLE Table_name MODIFY COLUMN column_name

12, Câu lệnh xóa bảng DROP TABLE

- Xóa table: DROP TABLE ~ [if exists] table_name

13, Thêm mới dữ liệu INSERT

- Insert dữ liệu vào bảng:

INSERT INTO table_name [(column_name [ ,….] ) ] VALUES ([ ,…])

- Ví dụ:

Trang 12

 Xem dữ liệu trong bảng:

INSERT INTO table_name VALUES (value1, value2, value3, );

Trong đó, các giá trị được chèn phải tương ứng với thứ tự của các cột trong bảng Tuy nhiên, nếu không chỉ rõ tên các cột, một số cột có thể được bỏ qua hoặc thêm giá trị null cho các cột bị bỏ qua Do đó, nên chi rõ tên các cột để tránh nhầm lẫn và giúp cho mã code dễ hiểu hơn.

14, Câu lệnh cập nhật dữ liệu (UPDATE)

- Thay đổi giá trị trong Records

 Update ở table nào

 Set – Giá trị ở cột nào sẽ được thay đổi thành giá trị mới như thế nào

 Where – điều kiện để hạn chế sự thay đổi ở record nhất định, nếu không có điều kiện thì sự thay đổi sẽ được áp dụng cho mọi bản ghi của table

Ngày đăng: 12/04/2024, 15:42

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

Tài liệu liên quan