分享是一种积极的学习态度!
抱歉,最近工作有写忙,没那么多时间和小伙伴们一起聊聊数据库。在这里先跟大家陪个不是。 在今后的我也争取在我的文章里,加入一些行业流行的咨询。
这一周我们继续跟进数据库的学习进度。上一周,我们重点学习了关系数据库的一些基本Key和Integrity的概念:
Candidate key
Super key
Primary key
Foreign Key
Entity integrity
Referential integrity
Domain integrity
如果这些名词对你来说还很陌生,请用这个法师开的传送门:【你好week2】数据库学习的日常 - 关系模型
Entity Relationship Diagram &SQL Statement
ER Diagram
首先ER Diagram是IT项目里,出现频率很高的设计,很多大公司的项目设计HLD (High level design) 或者架构设计文档,都需要有ERD的出现。我们通过ERD来更有效准确的创建、管理和维护我们的数据库。
ERD里的一些关键元素。在做assignment1的时候,基本上下面所有的元素都需要完整的体现在你的图里。
Entity 实体
Attributes 属性
Relationship 关系
Association 关联
附赠所有关联的表达方式:
Participation
Total Participation 全部参与
如下图,每一个Order都必须要被顾客下单,所以Places之后,是全部参与
Partial Participation 部分参与
很多网站都存在这样的现象,不是每一个注册的用户都会下单,所以Places之前会是Partial Participation。
附赠所有ER图所有所有元素的解释和例子:
SQL Statement
前面和上周的内容基本上都是数据库 基本上的概念。下面的内容,才是做好码农必须要会用的 -- SQL Statement (结构化查询语言)。在这里我要提一句,SQL也是有自己单词发音的 /ˈsiːkwəl/。
SQL 最重要的一个点就是分号‘;’, 用来告诉数据库,这一条指令到这里结束。
Create table
Create table 最基本的语法是 CREATE TABLE table_name ( ); 括号里加入一些属性的定义。
Syntax:
上面仅仅是创建一个普通的表
Define Primary Key (定义主键)
还是以上面为例,要创建一个带有主键的表,需要加上PRIMARY KEY的属性。这个其实可以这么写
又或者是这么写:
两者是有区别的,区别是什么,我先卖个关子。想要清楚的解释,篇幅足够开一篇新文章了。目前,同学们可以简单理解为,他们之间基本上做着相同的事情。 后者把主键的约束起了一个自定义的名字PK_Customer.
Define foreign key (定义外键)
E.g.
Insert
Syntax:
E.g.
Sequence
在Oracle数据库里,我们试用CREATE SEQUENCE 来让主键自增 (AUTO_INCREMENT), 在插入一条新纪录是,我们是不需要·写入这个column,系统会自动生成。
Syntax:
E.g.
Updates
Syntax:
E.g.
Delete
Syntax:
E.g.
Referential integrity 参照完整性
加入我们要建立一个关于公司员工档案的简易数据库。我们用一个表(department)来储存部门名称,部门id;用另外一个表(employee)来存放员工的信息,这些信息就包括员工所在的部门。参照完整性,概括的说,就是employee表里用fk depart_id来参照和department之间的联系,且fk不允许参照不存在的实体。为了确保参照完整性,各个公司的SQL数据库都试用如下三个方法来避免用户错误的删除了主键,从而导致和另一个表的关系断裂,一般在了解了business logic之后,我们就可以来选择其中的一种方法。
Assignment考点:
RESTRICT
数据库是不允许被引用的department信息被删除。通常数据库会返回error,同时rollback之间删除的statement。
CASCADE
当被引用的department信息被删除,任何在employee里相同部门(拥有该depart_id)的员工信息也会一并被删除。
NULLIFY
当被引用的department信息被删除,任何在employee里相同部门(拥有该depart_id)的员工,depart_id会被设置成空(null)
e.g.
到这里,你assignment1里的Task1基本上就可以初步成形了,剩下的就需要在完成T2 T3的时候进行各种修改和优化了。
领取专属 10元无门槛券
私享最新 技术干货