白话概念模型、逻辑模型与物理模型
1 概念模型:站在用户的角度,描述系统中有哪些核心组成部分以及它们之间的关系,回答的问题“是什么”,”有什么”。即系统中管理了哪些事物或概念,以及他们之间有什么关系,不需要描述事物的具体属性。
如:图书馆有书、读者和借阅记录。读者可以借书,书有书名和作者。
2 逻辑模型:将概念模型转化为具体的表结构和字段定义,回答的问题是“怎么组织的”,但不涉及具体的数据库技术。
如:书籍表:书名、作者、编号、是否可借。
读者表:姓名、借书卡号。
借阅记录表:借书卡号、书籍编号、借书日期、还书日期。
3 物理模型:是逻辑模型的具体实现,回答的问题是“怎么实现”,它关注的是数据在数据库中的实际存储方式。它涉及到了具体的数据库技术细节:
- 使用什么数据库软件(如MySQL、Oracle、PostgreSQL等)。
- 数据如何存储在磁盘上。
- 如何优化性能(比如索引、分区等)。
如:图书馆管理系统的物理模型
1) 选择数据库软件:比如使用MySQL。
2) 定义具体的表结构:
书籍表:
CREATE TABLE Books (
BookID INT PRIMARY KEY, -- 书籍编号
Title VARCHAR(255), -- 书名
Author VARCHAR(255), -- 作者
IsAvailable BOOLEAN -- 是否可借);
读者表:
CREATE TABLE Readers (
ReaderID INT PRIMARY KEY, -- 借书卡号
Name VARCHAR(255) -- 姓名);
借阅记录表:
CREATE TABLE BorrowRecords (
RecordID INT PRIMARY KEY, -- 记录编号
ReaderID INT, -- 借书卡号
BookID INT, -- 书籍编号
BorrowDate DATE, -- 借书日期
ReturnDate DATE, -- 还书日期
FOREIGN KEY (ReaderID) REFERENCES Readers(ReaderID),
FOREIGN KEY (BookID) REFERENCES Books(BookID));
3) 优化性能:
为Books表的BookID字段创建索引,加快查询速度。
为BorrowRecords表的BorrowDate字段创建索引,方便按日期查询借阅记录。
用图书馆的例子来说: