第二章:关系数据库

一.基本概念

1.关系模型三个要素:基本模式、基本操作、完整性约束。
第二章:关系数据库_第1张图片
2.关系运算:关系代数和关系演算;关系演算:元组演算和域演算
关系代数示例:基于集合的运算
在这里插入图片描述
基于关系代数设计的数据库语言(ISBL):
在这里插入图片描述
R:F表示选择运算,R%表示投影运算

二.完整性约束

1.实体完整性:关系中主码的属性不能为空。
第二章:关系数据库_第2张图片
2.参照完整性:如果关系R1的外码Fk与关系R2的主码相对应,则R1中的每一个元组的Fk值或等于R2中的某个元组的Pk值,或者为空值。
(意义:如果关系R1的某个元组t1参照了关系R2的某个元组t2,则t2必须存在。)
示例:第二章:关系数据库_第3张图片
3.用户自定义完整性:用户针对具体的应用环境定义的完整性约束条件。

实体完整性和参照完整性由DBMS系统自动支持

概念图:第二章:关系数据库_第4张图片

代码示例:

任务一:建立一个数据库library。使用utf8字符集

######### Begin #########
CREATE DATABASE library CHARACTER SET utf8;

######### End ##########
SELECT schema_name,DEFAULT_CHARACTER_SET_NAME  FROM information_schema.SCHEMATA where SCHEMA_NAME='library';

任务二:

第二章:关系数据库_第5张图片

use library;
DROP TABLE IF EXISTS `Class_User`;
######### Begin #########
CREATE TABLE Class_User(
    classNo TINYINT NOT NULL PRIMARY KEY,
    cname VARCHAR(20) NOT NULL UNIQUE,
    term TINYINT NOT NULL default 30,
    ceilingNum TINYINT NOT NULL
);




######### End ##########
SELECT CONSTRAINT_SCHEMA,TABLE_NAME,CONSTRAINT_TYPE FROM information_schema.`TABLE_CONSTRAINTS` where CONSTRAINT_SCHEMA='library' and TABLE_NAME='Class_User';
## show create table Class_User;
desc Class_User;

任务三:

第二章:关系数据库_第6张图片

use library;
DROP TABLE IF EXISTS `BookInfo`;
######### Begin #########
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
);
######### End ##########
SELECT CONSTRAINT_SCHEMA,TABLE_NAME,CONSTRAINT_TYPE FROM information_schema.`TABLE_CONSTRAINTS` where CONSTRAINT_SCHEMA='library' and TABLE_NAME='BookInfo';
## show create table BookInfo;
desc BookInfo;

任务四:

继续在前面创建的library数据库中,创建“图书目录表”Books。
创建Books表,并按要求创建以下约束(不考虑非空约束),均使用表级约束:
1.为Books表创建Primary KEY约束。
2.为Books表的ISBN字段创建Foreign KEY约束。
3.为Books表的Bstatus字段创建check约束。
(3) 图书目录表:Books
第二章:关系数据库_第7张图片
1.虽然ISBN号对于每一种书来说都具有唯一性,但图书馆中一种书可能有许多本,并且存放在不同的位置,有的是可以借出,有的却只能阅览,所以对图书馆中的每一本书都编了一个书号(书号唯一),以条形码的方式贴在书的第一面,对于每一本书都唯一。
2.状态为是否可借阅,只有可借阅的书用户才可以借。状态表示一本书的当前借阅状态,0代表可以借阅且尚未借出,1代表已经借出,2代表此书只供阅览不外借,3表示此书已经预约,已经预约的书在取消预约之前不能外借。
3.有的书对借阅对象有限制,如有的书只对教师出借,有的可以对研究生和本科毕业生进行毕业设计时出借,23表示可以对教师和研究生借阅,0表示对所有用户外借,99表示对所有用户不外借。

use library;
DROP TABLE IF EXISTS `Books`;
######### Begin #########
CREATE TABLE Books(
bookNo CHAR(9),
ISBN CHAR(13),
location VARCHAR(40) ,
bstatus CHAR(1),
ctr_no TINYINT,
CHECK(bstatus='0' OR bstatus='1' OR bstatus='2' OR bstatus='3'),
CONSTRAINT pk_bookNo primary key(bookNo),
FOREIGN KEY (ISBN) REFERENCES BookInfo(ISBN)
);
######### End ##########
SELECT CONSTRAINT_SCHEMA,TABLE_NAME,CONSTRAINT_TYPE FROM information_schema.`TABLE_CONSTRAINTS` where CONSTRAINT_SCHEMA='library' and TABLE_NAME='Books';
## show create table Book;
desc Books;

你可能感兴趣的:(大二数据库笔记,数据库,database)