Tuy nhiên, sau tất cả những trải nghiệm tuyệt vời đó, có một hệ thống phức tạp phía sau, một cơ sở đữ liệu đề quản lý hàng triệu bài hát, thông tin nghệ sĩ và danh sách phát của người dù
e Song
CHUAN HYA DU LIEU
1 Khai niém Chuẩn hóa dữ liệu (Data NormalizationÍ là một quá trình quan trọng trong quản lý cơ sở dữ liệu, nhằm tối ưu hóa câu trúc dữ liệu để đảm bảo tính nhất quán và tránh các vấn đề liên quan đến sự lặp lại dữ liệu Đây là một phần quan trọng trong thiết kế cơ sở dữ liệu để đảm bảo dữ liệu được lưu trữ và truy xuất một cách hiệu quả Các dạng chuẩn hóa cơ bản
2 Các dạng chuẩn hóa cơ bản ® 1NE(First Normal Form - Dạng chuẩn hóa 1Í: o_ Mợi ô trong bảng phải chứa một giá trị duy nhất (không có giá trị lặp lại) ©_ Các cột phải có tên riêng biệt o_ Các giá trị trong mỗi cột phái thuộc vào một tập giá trị nguyên thuỷ (atomic values) ¢ 2NF (Second Normal Form - Dang chuẩn hóa 2Í: o Dam bao rang bang da o dang INF o_ Tất cả các cột không phải là phần của khóa chính (non-prime attributes) phải phụ thuộc vào tất cả các khóa chính (prime attributes) ¢ 3NF(Third Normal Form - Dạng chuẩn hóa 3Í: o_ Đảm bảo rằng bảng đã ở dạng 2NF o_ Loại bỏ su phy thuéc chirc nang (transitive dependency) Cy thé, néu A phu thudc vao B va B phy thudc vao C, thi A khéng nén phy thuộc vào C ¢ BCNF (Boyce-Codd Normal Form - Dạng chuẩn hóa BCNFI: o_ Đảm bảo rằng bảng đã ở dạng 3NF o_ Mọi hàm phụ thuộc không xuất hiện trên khóa chính
3 ữuy trGnh chuẩn hóa dữ liệu ® - Xác định các bang cơ sở dữ liệu ®© Xác định khóa chính của mỗi bảng ® Áp dụng các quy tắc của dạng chuân hóa tương ứng (1NE, 2NF, 3NF, BCNF) để đảm bảo rằng mỗi bảng đạt được dạng chuân hóa mong muốn ® Tạo các bảng phụ nếu cần thiết để loại bỏ các phụ thuộc không mong muốn,
ONE FOR ALL 15 © Kiểm tra lại mối quan hệ giữa các bảng đề đảm bảo tính nhất quán và hiệu suất truy cập
Quan hệ ko có thuộc tính đa Chuyển tất cả quan hệ lặp hoặc đa trị 1 trị và quan hệ lặp thành 1 quan hệ mới
: ` ` Tách thuộc tính phụ thuộc 1 phần thành Phụ thuộc ; 5 1 phân vào thuộc lược đồ mới, đảm bảo quan hệ với lược Này, Hi on Pp” 2 tính khóa đô liên quan on
Phụ thuộc ẩn, tồn tại phụ thuộc 3 hàm giữa các thuộc tính ko phải Tach các thuộc tính đó thành lược đồ mới là khóa
Hình IƯ-9 Quy trình chuẩn hóa © M6 hGnh ban dau:
Admin (admin_id, email, name, phone, website_id) Website (website_id, website name, website_url) Product (product 1d, order 1d, website 1d, produect_ name, product_status) Customer (customer_id, contact, address, name)
Payment (id payment, amount, date, method, customer_id) Order (order_id, quantity, date, price, order id details, customer_id) Order _ details (oder_ details id, address cus, total_ amount, date, quantity, oder_id) ¢ First Normal Form (INEÍ:
Admin (admin_id, email, name, phone, website_id) Website (website_id, website name, website_url)
Product (product 1d, order 1d, website 1d, produect_ name, product_status) Customer (customer_id, contact, address, name)
Payment (id payment, amount, date, method, customer_id) Order (order_id, quantity, date, price, customer_id) Order _ details (oder_ details id, address cus, total_ amount, date, quanlity, oder_id) ¢ Second Normal Form (2NFI:
Admin (admin_id, email, name, phone) Website (website_id, website name, website_url) Product (product_id, product_name, product_status, website 1d) Order (order_id, quanlity, date, price, customer_id)
Order_details (oder_ details id, address cus, total_ amount, date, quantity, oder_id) Order Product (order_id, product_id)
Customer (customer_id, contact, address, name) Payment (id payment, amount, date, method, customer_id) ¢ Third Normal Form (3NFI:
Admin (admin_id, email, name, phone) Website (website_id, website name, website_url) Product (product_id, product_name, product_status, website 1d) Order (order_id, quantity, date, price, customer_id)
Order _ details (oder_ details id, address cus, total_ amount, date, quantity, oder_id)
Order Product (order 1d, product 1d) Customer (customer_id, contact, address, name) Payment (id_ payment, amount, date, method) Product Website (product_id, website_id) a KEtluận
> Chuan hoa dé liéu la qua trình quan trọng trong thiết kế cơ sở dữ liệu, giúp tô chức dữ liệu một cách hợp lý để đảm bảo tính nhất quán, tránh sự lặp lại không cần thiết và giảm thiêu các van đê liên quan đến cập nhật và xóa dữ liệu Có nhiêu câp độ chuẩn hóa, từ INF đến 6NF, mỗi cấp độ đề xuất các quy tắc cụ thể đề đạt được một mức độ chuẩn hóa cụ thể Các bước chuẩn hóa dữ liệu bao gồm xác định bảng, xác định khóa chính, áp dụng quy tắc chuân hóa tương ứng và kiểm tra môi quan hệ giữa các bảng
> Chuân hóa dữ liệu là một phần quan trọng của quá trình thiết kế cơ sở dữ liệu để đảm bảo tính nhất quán, hiệu suất và dễ bảo trì của hệ thống cơ sở dữ liệu.
LUQC DO GUAN HE (ENTITY-RELATIONSHIP DIAGRAMI
STT Tên trường Kiêu dữ liệu Mô tả NullaNot null
1 account id varchar (11) Primary Key Not null
2 usage package varchar (255) Not null
3 payment info varchar (255) Not null
Bang VI-10 Account Diagram e User:
STT Tên trường Kiêu dữ liệu Mô tả NullaNot null
1 user 1d varchar (11) Primary Key Not null
3 gender varchar (10) Not null a name varchar (255) Not null
Bang VI-11 User Diagram ® Artist:
STT Tên trường Kiêu dữ liệu Mô tả NullaNot null
1 artist id varchar (11) Primary Key Not null
Bang VI-12 Artist Diagram e Album:
STT Tên trường Kiéu dữ liệu Mô tả NullaNot null
1 album_id varchar (11) Primary Key Not null
3 genre varchar (255) Not null a year int Not null
(Foreign Key - FK) 5 atist id varchar (11) Liên kết với mã định Not null danh cua nghé si Bang VI-13 Album Diagram e Song:
STT 'Tên trường Kiêu dữ liệu Mô tả NullaNot null
1 song id varchar (11) Primary Key Not null
3 lyrics text Null a length int Not null
(Foreign Key - FK) 6 album id varchar (11) Liên kết với mã định Not null danh cua album Bang VI-14, Song Diagram e Playlist:
| STT | Têntrường | Kiêudữliệu | Mô tả | NullaNot null |
1 playlist 1d varchar (11) Primary Key Not null
Bang VI-15, Playlist Diagram e = PlaylistSongs:
STT Tên trường Kiêu dữ liệu Mô tả NullaNot null
1 playlistSong id varchar (11) Primary Key Not null song id (Foreign Key - FK)
2 varchar (11) Liên kết với mã định Not null danh của Song playlist 1d (Foreign Key - FK)
3 varchar (11) Liên kết với mã định Not null danh cua playlist
Bang VI-16 Playlist Diagram vi AAY DUNG CO SO DU LIEU VOI S@#L SEVER
1 Tao database ¢ Cac lénh co ban:
Tao: CREATE DATABASE SQLSpotify Tao trong vung dir
FILENAME = SIZE = 20MB,
NAME = SQLSp FILENAME = SIZE = 6MB, MAXSIZE = liệu:
FILEGROWTH = 1MB )›
- _ Sứ dụng: USE SQLSpotify - Áóa:DROP DATABASE SQLSpotify
CREATE TABLE Account ( account_id VARCHAR(11) PRIMARY KEY, usage package VARCHAR(255) NOT NULL, payment_info VARCHAR(255) NOT NULL
CREATE TABLE Users ( users_id VARCHAR (11) PRIMARY KEY, password VARCHAR (255) NOT NULL, birthday DATE NOT NULL, name VARCHAR (255) NOT NULL, gender VARCHAR(1@) NOT NULL, email VARCHAR(255) NOT NULL, account_id VARCHAR(11), FOREIGN KEY (account_id) REFERENCES Account(account_id) )3
CREATE TABLE Artist ( artist_id VARCHAR(11) PRIMARY KEY, name VARCHAR (255 ) NOT NULL
CREATE TABLE Album ( album_id VARCHAR(11) PRIMARY KEY, name VARCHAR(255) NOT NULL, genre VARCHAR(5@) NOT NULL, year INT NOT NULL, artist_id VARCHAR(11) NOT NULL, FOREIGN KEY (artist_id) REFERENCES Artist (artist_id) )3
ONE FOR ALL 21 id_song VARCHAR(11) PRIMARY KEY, name VARCHAR(255) NOT NULL, lyrics TEXT NULL, length INT NOT NULL, genre VARCHAR(5@) NOT NULL, album_id VARCHAR(11) NOT NULL, FOREIGN KEY (album_id) REFERENCES Album (album_id)
CREATE TABLE Playlist ( playlist_id VARCHAR(11) PRIMARY KEY, name VARCHAR(255) NOT NULL, length INT NOT NULL, users_id VARCHAR(11), FOREIGN KEY (users_id) REFERENCES Users(users_id) )3
CREATE TABLE PlaylistSong ( playlist_song_id INT IDENTITY(1,1) PRIMARY KEY, playlist_id VARCHAR(11) NOT NULL, song _id VARCHAR(11) NOT NULL, FOREIGN KEY (playlist_id) REFERENCES Playlist (playlist_id),
FOREIGN KEY (song_id) REFERENCES Song (id_song)
- INSERT INTO Account (account_id, usage package, payment_info) VALUES - (1, 'Free', ‘Payment info for Free account'),
- (2, ‘Premium’, ‘Payment info for Premium account' );
INSERT INTO Users (users_id, password, birthday, name, gender, email, account_id)
VALUES (1, 'password123' , '20@@-@1-@1','John Doe', 'Male',
"john.doe@example.com', 1), (2, 'pass456','1995-@6-15','Jane Smith','Female',
INSERT INTO Artist (artist_id, name) VALUES
(1, ‘Hoang Ton'), (2, ‘Bui Anh Tuan'), (3, ‘Hoang Dung");
INSERT INTO Album (album_id, name, genre, year, artist_id) VALUES
(1, 'Yen Concert', 'Pop', 2922, 1), (2, 'Chung Ta', 'Ballad', 2823, 2), (3, 'Doi Nui', 'R&B', 2023, 3);
INSERT INTO Song (id_song, name, lyrics, length, genre, album_id)
VALUES (1, ‘Song 1', ‘Lyrics for Song 1', 246, ‘Pop’, 1), (2, ‘Song 2', ‘Lyrics for Song 2', 220, 'Rock', 2), (3, ‘Song 3', ‘Lyrics for Song 3', 196, ‘R&B’, 3);
INSERT INTO Playlist (playlist_id, name, length) VALUES (1, ‘Playlist 1', 3),
INSERT INTO PlaylistSong (playlist_id, song_id) VALUES
(1, 1), Playlist 1 chứa Song 1 (1, 2), Playlist 1 chứa Song 2 (2, 2), Playlist 2 chứa Song 2 (2, 3); Playlist 2 chứa Song 3 a Truy vân cơ sở dữ liệu
VIL KET LUAN
TAI LIEU THAM KHAO
[3] https://blog vinbigdata org/khai-quat-ve-mo-hinh-du-lieu-quan-he/
[4] https://viblo.asia/p/cac-buoc-chuan-hoa-co-so-du-lieu-co-ban-ROqKLMJmZ7z
[5] https://viblo.asia/p/mo-hinh-quan-he-thuc-the-entity-relationship-model- oOVIYEenlSW