From 06ada2ef027d8c70e359fa81db21809d321fdb8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E4=BD=B3=E7=82=9C?= <626104790@qq.com> Date: Mon, 11 Sep 2023 09:28:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E4=B9=A6=E9=A6=86=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...06\346\225\260\346\215\256\345\272\223.md" | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 "25\351\231\210\344\275\263\347\202\234/\345\233\276\344\271\246\351\246\206\346\225\260\346\215\256\345\272\223.md" diff --git "a/25\351\231\210\344\275\263\347\202\234/\345\233\276\344\271\246\351\246\206\346\225\260\346\215\256\345\272\223.md" "b/25\351\231\210\344\275\263\347\202\234/\345\233\276\344\271\246\351\246\206\346\225\260\346\215\256\345\272\223.md" new file mode 100644 index 0000000..0b3206c --- /dev/null +++ "b/25\351\231\210\344\275\263\347\202\234/\345\233\276\344\271\246\351\246\206\346\225\260\346\215\256\345\272\223.md" @@ -0,0 +1,109 @@ +# 笔记 + + 第一步:创建概念模型(类似ER图) CDM (用户角度) + + 第二步:转换成逻辑模型 LDM (计算机角度) + + 第三步:转换成物理模型 PDM (数据库角度) + + 第四步:生成DDL + +# 数据库设计步骤 + + 1.需求分析,了解要开发的系统的需求,明确数据和格式 + + 2.概念结构设计:将需求分析得到的抽象成概念模型,将ER图向关系模型转化 + + 3.逻辑结构设计:将概念结构转化成DBMS所支持的数据模型 + + 4.物理结构设计:将概念模型,转换成选定数据库管理系统需要的物理模型 + + 5.数据库实施:根据物理模型生成对应的DDL + + 6.数据库维护 + +# 作业 + +CREATE DATABASE libary; + +DROP TABLE IF EXISTS Class_User; +CREATE TABLE Class_User( +classNo int NOT NULL PRIMARY KEY, +cname VARCHAR(20) NOT NULL UNIQUE, +term int NOT NULL default 30, +ceilingNum int NOT NULL +); + +DROP TABLE IF EXISTS BookInfo; +CREATE TABLE BookInfo( +ISBN CHAR(13) NOT NULL PRIMARY KEY, +bname VARCHAR(60) NOT NULL, +author VARCHAR(30) NOT NULL, +press VARCHAR(40) NOT NULL, +price FLOAT NOT NULL, +language VARCHAR(20) DEFAULT '中文', +pages int +); + +DROP TABLE IF EXISTS Books; +CREATE TABLE Books( +bookNo CHAR(9) PRIMARY KEY, +ISBN CHAR(13), +location VARCHAR(40) , +bstatus CHAR(1), +ctr_no int, +CHECK(bstatus='0' OR bstatus='1' OR bstatus='2' OR bstatus='3'), +FOREIGN KEY (ISBN) REFERENCES BookInfo(ISBN) +); + +DROP TABLE IF EXISTS Users; +CREATE TABLE Users( +loanNo VARCHAR(16) NOT NULL PRIMARY KEY, +lname VARCHAR(30) NOT NULL, +pwd VARCHAR(16) NOT NULL, +unitName VARCHAR(50) NOT NULL, +registerDate date NOT NULL, +classNo int NOT NULL, +email VARCHAR(40) +); + +DROP TABLE IF EXISTS Loan; +CREATE TABLE Loan( +bookNo CHAR(9) NOT NULL PRIMARY KEY, +loanNo VARCHAR(16)NOT NULL, +borrowDate DATETIME NOT NULL, +FOREIGN KEY(loanNo) REFERENCES Users(loanNo), +FOREIGN KEY(bookNo) REFERENCES Books(bookNo) +); + +DROP TABLE IF EXISTS LoanHist; +CREATE TABLE LoanHist( +loanNo VARCHAR(16) NOT NULL, +bookNo CHAR(9) NOT NULL, +borrowDate DATETIME NOT NULL, +returnDate DATETIME NOT NULL, +primary key(bookNo,loanNo,borrowDate), +foreign key(bookNo) references Books(bookNo), +foreign key(loanNo) references Users(loanNo) +); + +DROP TABLE IF EXISTS Reservation; +CREATE TABLE Reservation( +ISBN CHAR(13) NOT NULL, +loanNo VARCHAR(16) NOT NULL, +reservation_Date DATETIME NOT NULL, +rsratus CHAR(1) NOT NULL, +primary key(ISBN,loanNo,reservation_Date), +foreign key(ISBN) references BookInfo(ISBN), +foreign key(loanNo) references Users(loanNo) +); + +DROP TABLE IF EXISTS Money; +CREATE TABLE Money( +ID int NOT NULL AUTO_INCREMENT PRIMARY KEY, +loanNo VARCHAR(16) NOT NULL, +bookNo CHAR(9), +amount FLOAT , +reason ENUM('过期罚款','损坏赔偿','丢失赔偿','办证费','办证押金'), +billdate DATETIME NOT NULL +); \ No newline at end of file -- Gitee