Quan hệ 1 1 trong sql

Bởi Kiên Smart Data
0 Nhận xét
Quan hệ 1 1 trong SQL

Quan hệ 1 1 trong sql là một trong các quan hệ cơ bản nhất của cơ sở dữ liệu. Bài viết này hãy cùng SmartData tìm hiểu ý nghĩa và tác dụng của nó.

Quan hệ 1 1 là gì?

Khi một bản ghi trong bảng chỉ liên quan đến một bản ghi trong bảng khác và ngược lại, chúng ta nói rằng đó là mối quan hệ 1-1. Mối quan hệ này có thể được tạo bằng cách sử dụng các ràng buộc Khóa chính-Khóa ngoài duy nhất.

Ví dụ, một chồng chỉ được có một vợ và ngược lại, một vợ cũng chỉ được có một người chồng duy nhất

Ý nghĩa của quan hệ 1 1

Về mặt logic, quan hệ 1 1 trong cơ sở dữ liệu giúp bạn tối ưu thiết kế, đảm bảo các tiêu chuẩn chuẩn hóa của database như ( 1NF, 2NF, 3NF). Ngoài ra quan hệ 1 1 cũng là một cách để người thiết kế mô hình hóa các đói tượng của thế giới thực vào các đối tượng trong cơ sở dữ liệu.

Ví dụ quan hệ 1 1 trong Sql

Giả sử ta có 2 bảng

  • Bảng PERSON: Chứa thông tin cá nhân
  • Bảng PASSPORT_DETAIL: Chứa thông tin hộ chiếu của cá nhân trong bảng PERSON

Cú pháp tạo 2 bảng kia trong MYSQL như sau:

CREATE TABLE PERSON( ID INT AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(255) ); CREATE TABLE PASSPORT_DETAIL( ID INT AUTO_INCREMENT PRIMARY KEY, PASSPORT_NUMBER INTEGER, FOREIGN KEY (USER_ID) REFERENCES PERSON(ID) ); 

Bảng PERSON được coi là có quan hệ 1 1 với bảng PASSPORT_DETAIL bởi vì mỗi bản ghi trên bảng PERSON chỉ liên kết với 1 bản ghi trên bảng PASSPORT_DETAIL

Để lấy ra được thông tin passport của một người bất kì nào đó trong bảng PERSON ta chỉ cần truy vấn đơn giản như sau:

SELECT P.ID, P.NAME, PD.PASSPORT_NUMBER FROM PERSON P INNER JOIN PASSPORT_DETAIL PD ON P.ID = PD.USER_ID

Dữ liệu nhận được sẽ như sau:

+----+------------------------+--------------------+ | ID | NAME | PASSPORT_NUMBER | +----+------------------------+--------------------+ | 1 | Nguyễn Ngọc Ngạn | ngannnn1@gmail.com | | 2 | Hà Quỳnh Anh | haquynha@gmail.com | +----+------------------------+--------------------+

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa:

Bài viết liên quan

Để lại nhận xét

Copyright @2022 – Bản quyền thuộc Học viện dữ lệu Smart Data