数据库:域、笛卡尔积、候选码

本文介绍了数据库的基础概念,包括域的定义,如整型和日期范围,以及笛卡尔积的计算方法和元组、分量的概念。强调了主码和候选码在确保数据唯一性中的作用,以及主码和非空约束的区别。此外,外码作为关联不同表的关键,其作用在于维护数据的一致性和完整性,并讨论了外码的限制与级联操作。最后,提到了关系的三种类型:基本表、查询表和视图。
摘要由CSDN通过智能技术生成

1、: 是一组具有相同数据类型的值的集合

如:所有的整型(实数集)是一个域,介于某个取值范围的日期

2、笛卡尔积

(1)笛卡尔积

给定一组域D1,D2,D,...,Dn,这些域中可以有相同的。D1,D2,D,...,Dn的笛卡尔积为:D1×D2×D×...×Dn= { d1,d2,...,dn } ( 每一个d都对应一个D,如:d1--->D1 )

所有域的所有取值的集合,且不能重复

如a = { 1 , 2 , 3 } ,b = { a, b , c };

则 a× b = :{ 1 ,a } , { 1 ,b } , { 1 ,c } ,{ 2 ,a } , { 2 ,b } , { 2,c } , { 3 ,a } , { 3 ,b } , { 3 ,c }

(2)元组

笛卡尔积中每一个元素 ( d1,d2,...,dn ) 叫做一个 n 元组 或 简称元组

(3)分量

笛卡尔积元素 ( d1,d2,...,dn ) 中的每一个值di叫做一个分量

(4)基数(笛卡尔积的基数代表了笛卡尔积元组的条数):

若Di( i = 1 , 2 , ... , n )(一个域)为由限集,基数(每个域里面的元素个数)为mi( i = 1 , 2 , ... , n ),则笛卡尔积的基数为 D1×D2×...×Dn (每个域的基数的乘积)为基数M

上面的例子中的笛卡尔积基数为: 3 × 3 = 9

笛卡尔积的表示方法:

笛卡尔积可表示为一个二维表,表中的每行对应一个元素,表中的每列的值来自一个域。

候选码:某一属性组的值能唯一地标识一个元组,则该属性组为候选码

若一个关系中有多个候选码,则选定其中一个为主码。例如学生的学号就可以作为一个主码,因为它是唯一的。

一个关系可以没有主码,但是设置一个主码的话对数据库查询效率会高一些。

主码不一定是只有一个属性主码可以由一个或者多个属性组成主码是候选码之一。

考虑主码的时候考虑的是属性的唯一性,即该属性的值不会重复,如果重复了就无法唯一标识整个元组。

如:学号可以标识学生这一个元组

一个关系中可以有多个候选码,选定一个为主码

主码和设置非空的关系是什么?
主码的要求是:非空、唯一性。

而设置某个属性:非空仅仅是不允许输入空值,但却可以重复。

 

外码(外键)
那么什么是外码呢?

如果一个关系中的一个属性(该属性不能是候选码)是另外一个关系中的主码则这个属性为外码。

外码的值要么为空,要么要为其对应的主码中的一个值。

 

那么外键的作用是什么呢?
保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。

使两张表形成关联,外键只能引用外表中的列的值或使用空值。

 

阻止执行(情况一):

1、从表插入新行,其外键值不是主表的主键值便阻止插入;

2、从表修改外键值,新值不是主表的主键值便阻止修改;

3、主表删除行,其主键值在从表里存在便阻止删除(要想删除,必须先删除从表的相关行);

4、主表修改主键值,旧值在从表里存在便阻止修改(要想修改,必须先删除从表的相关行)。

级联执行(情况二):

1、主表删除行,连带从表的相关行一起删除;

2、主表修改主键值,连带从表相关行的外键值一起修改。

       两种方法提供给用户选择。无论选取哪种方法,从表里都不会有多余行。

       从另一个角度理解,用拒绝同一事物在从表中的标志与主表不一致

关系可以有三种类型:

基本关系(基本表或基表):实际存在的表,是实际存储数据的逻辑表示

查询表:查询结果对应的表

视图表:由基本表或其它试图表导出的表,是虚表,不对应实际存储的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值