Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
beginnersbook-zh
提交
45ea93b4
B
beginnersbook-zh
项目概览
OpenDocCN
/
beginnersbook-zh
大约 1 年 前同步成功
通知
0
Star
107
Fork
30
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
beginnersbook-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
45ea93b4
编写于
8月 29, 2019
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2019-08-29 09:49:44
上级
b431ea26
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
29 addition
and
21 deletion
+29
-21
docs/dbms/27.md
docs/dbms/27.md
+2
-1
docs/dbms/28.md
docs/dbms/28.md
+10
-9
docs/dbms/29.md
docs/dbms/29.md
+4
-1
docs/dbms/30.md
docs/dbms/30.md
+7
-6
docs/dbms/31.md
docs/dbms/31.md
+6
-4
未找到文件。
docs/dbms/27.md
浏览文件 @
45ea93b4
...
...
@@ -5,6 +5,7 @@
**定义**
:外键是表的列,指向另一个表的
[
主键
](
https://beginnersbook.com/2015/04/primary-key-in-dbms/
)
。它们充当表之间的交叉引用。
**例如**
:
在下面的例子中,
`Course_enrollment`
表中的
`Stu_Id`
列是外键,因为它指向
`Student`
表的主键。
`Course_enrollment`
表:
...
...
@@ -18,7 +19,7 @@
| C06 | 103 |
| C07 | 102 |
学生
表:
`Student`
表:
|
`Stu_Id`
|
`Stu_Name`
|
`Stu_Age`
|
| --- | --- | --- |
...
...
docs/dbms/28.md
浏览文件 @
45ea93b4
...
...
@@ -10,7 +10,7 @@
*
独特
*
默认
*
校验
*
关
键约束 - 主键,外键
*
键约束 - 主键,外键
*
域约束
*
映射约束
...
...
@@ -30,7 +30,7 @@ PRIMARY KEY (ROLL_NO)
);
```
在这里阅读更多关于
[
这个约束的信息
](
https://beginnersbook.com/2014/05/not-null-constraint-in-sql/
"NOT NULL Constraint in SQL"
)
。
在这里阅读更多关于
[
这个约束的信息
](
https://beginnersbook.com/2014/05/not-null-constraint-in-sql/
)
。
#### 唯一:
...
...
@@ -46,7 +46,7 @@ PRIMARY KEY (ROLL_NO)
);
```
[
在这里阅读更多相关信息
](
https://beginnersbook.com/2014/05/unique-constraint-in-sql/
"UNIQUE Constraint in SQL"
)
。
[
在这里阅读更多相关信息
](
https://beginnersbook.com/2014/05/unique-constraint-in-sql/
)
。
#### 默认:
...
...
@@ -63,7 +63,7 @@ PRIMARY KEY (ROLL_NO)
);
```
阅读更多:
[
默认约束
](
https://beginnersbook.com/2014/05/default-constraint-in-sql/
"DEFAULT Constraint in SQL"
)
阅读更多:
[
默认约束
](
https://beginnersbook.com/2014/05/default-constraint-in-sql/
)
#### 校验:
...
...
@@ -86,7 +86,7 @@ PRIMARY KEY (ROLL_NO)
#### 主键:
[
主键
](
https://beginnersbook.com/2015/04/primary-key-in-dbms/
"Primary key in DBMS"
)
唯一标识表中的每条记录。它必须具有唯一值,并且不能包含空值。在下面的示例中,
`ROLL_NO `
字段被标记为主键,这意味着
`ROLL_NO`
字段不能具有重复值和空值。
[
主键
](
https://beginnersbook.com/2015/04/primary-key-in-dbms/
)
唯一标识表中的每条记录。它必须具有唯一值,并且不能包含空值。在下面的示例中,
`ROLL_NO `
字段被标记为主键,这意味着
`ROLL_NO`
字段不能具有重复值和空值。
```
CREATE TABLE STUDENT(
...
...
@@ -101,15 +101,16 @@ PRIMARY KEY (ROLL_NO)
#### 外键:
外键是表的列,指向另一个表的主键。它们充当表之间的交叉引用。
[
在这里了解更多相关信息。
](
https://beginnersbook.com/2015/04/foreign-key-in-dbms/
"Foreign key in DBMS"
)
[
在这里了解更多相关信息。
](
https://beginnersbook.com/2015/04/foreign-key-in-dbms/
)
#### 域限制:
每个表都有一组特定的列,每列允许基于其数据类型的相同类型的数据。该列不接受任何其他数据类型的值。
[
域约束
](
https://beginnersbook.com/2015/04/domain-constraints-in-dbms/
"Domain constraints in DBMS"
)
是
**用户定义的数据类型**
,我们可以像这样定义它们:
每个表都有一组特定的列,每列基于其数据类型允许相同类型的数据。该列不接受任何其他数据类型的值。
[
域约束
](
https://beginnersbook.com/2015/04/domain-constraints-in-dbms/
)
是
**用户定义的数据类型**
,我们可以像这样定义它们:
域约束=数据类型+约束(
`NOT NULL`
/
`UNIQUE`
/
`PRIMARY KEY`
/
`FOREIGN KEY`
/
`CHECK`
/
`DEFAULT`
)
#### 映射约束:
[
在这里阅读有关映射约束的内容。
](
https://beginnersbook.com/2015/04/mapping-constraints-in-dbms/
)
\ No newline at end of file
[
在这里阅读有关映射约束的内容
](
https://beginnersbook.com/2015/04/mapping-constraints-in-dbms/
)
。
\ No newline at end of file
docs/dbms/29.md
浏览文件 @
45ea93b4
...
...
@@ -2,12 +2,14 @@
> 原文: [https://beginnersbook.com/2015/04/domain-constraints-in-dbms/](https://beginnersbook.com/2015/04/domain-constraints-in-dbms/)
表是 DBMS 是一组包含数据的行和列。表中的列具有唯一的名称,通常在 DBMS 中称为
**属性
。域是表中属性允许的唯一值集。例如,一个月的域可以接受 1 月,2 月...... 12 月作为可能的值,整数域可以接受负数,正数和零的整数。**
表是 DBMS 是一组包含数据的行和列。表中的列具有唯一的名称,通常在 DBMS 中称为
**属性
**
。域是表中属性允许的唯一值集。例如,一个月的域可以接受 1 月,2 月...... 12 月作为可能的值,整数域可以接受负数,正数和零的整数。
**定义**
:域约束是
**用户定义的数据类型**
,我们可以这样定义它们:
域约束=数据类型+约束(
`NOT NULL`
/
`UNIQUE`
/
`PRIMARY KEY`
/
`FOREIGN KEY`
/
`CHECK`
/
`DEFAULT`
)
**示例**
:
例如,我想创建一个表
`student_info`
,其中
`stu_id`
字段的值大于 100,我可以创建一个域和表,如下所示:
```
...
...
@@ -23,6 +25,7 @@ stu_age int
```
**另一个例子**
:
我想创建一个表
`bank_account`
,其中
`account_type`
字段的值为
`checks`
或
`save`
:
```
...
...
docs/dbms/30.md
浏览文件 @
45ea93b4
...
...
@@ -2,16 +2,17 @@
> 原文: [https://beginnersbook.com/2015/04/mapping-constraints-in-dbms/](https://beginnersbook.com/2015/04/mapping-constraints-in-dbms/)
映射约束可以用
[
映射基数
](
https://beginnersbook.com/2015/04/cardinality-in-dbms/
"Cardinality in DBMS"
)
来解释:
映射约束可以用
[
映射基数
](
https://beginnersbook.com/2015/04/cardinality-in-dbms/
)
来解释:
**映射基数**
:
**一对一**
:实体集 A 的实体可以与实体集 B 中的至多一个实体和实体集 B 中的实体相关联。可以与实体集 A 中的至多一个实体相关联。
**一对
多**
:实体集 A 的实体可以与实体集 B 的任意数量的实体相关联,并且实体集 B 中的实体可以与实体集中的至多一个实体相关联。一个
。
**一对
一**
:实体集 A 的一个实体可以与实体集 B 中的至多一个实体相关联,实体集 B 中的一个实体可以与实体集 A 中的至多一个实体相关联
。
**
多对一**
:实体集 A 的实体可以与实体集 B 中的至多一个实体相关联,并且实体集 B 中的实体可以与任意数量的实体集实体相关联。一个
。
**
一对多**
:实体集 A 的一个实体可以与实体集 B 的任意数量的实体相关联,并且实体集 B 中的一个实体可以与实体集中 A 的至多一个实体相关联
。
**多对多**
:实体集 A 的实体可以与实体集 B 的任意数量的实体相关联,并且实体集 B 中的实体可以与实体集的任意数量的实体相关联。一个。
**多对一**
:实体集 A 的一个实体可以与实体集 B 中的至多一个实体相关联,并且实体集 B 中的一个实体可以与实体集 A 的任意数量的实体相关联。
**多对多**
:实体集 A 的一个实体可以与实体集 B 的任意数量的实体相关联,并且实体集 B 中的一个实体可以与实体集 A 的任意数量的实体相关联。
在数据库中创建表时,我们可以使用这些约束。
...
...
@@ -33,4 +34,4 @@ constraint fk_Customers foreign key (customer_id)
);
```
假设客户订单不止一次,上述关系代表
**一对多**
关系。同样,我们可以根据需求实现其他映射约束。
\ No newline at end of file
假设客户下订单不止一次,上述关系代表
**一对多**
关系。同样,我们可以根据需求实现其他映射约束。
\ No newline at end of file
docs/dbms/31.md
浏览文件 @
45ea93b4
...
...
@@ -5,15 +5,17 @@
在 DBMS 中,您可以在两个不同的地方听到基数术语,它也有两种不同的含义。
**在数据模型的背景下**
:
就
[
数据模型
](
https://beginnersbook.com/2015/04/data-models-in-dbms/
)
而言,基数是指两个表之间的关系。如
[
实体关系指南
](
https://beginnersbook.com/2015/04/e-r-model-in-dbms/
)
中所见,关系可以是四种类型:
一对一 - 第一个表的
第一
行与第二个表的单行相关联。例如,人与护照表之间的关系是一对一的,因为一个人只能拥有一本护照,而护照只能分配给一个人。
一对一 - 第一个表的
单
行与第二个表的单行相关联。例如,人与护照表之间的关系是一对一的,因为一个人只能拥有一本护照,而护照只能分配给一个人。
一对多 - 第一个表的
第一行与第二个表的多行相关联。例如,客户和订单表之间的关系是一对多,因为客户可以下多个订单,但单个客户可以单独下订单
。
一对多 - 第一个表的
单行与第二个表的多行相关联。例如,客户和订单表之间的关系是一对多,因为客户可以下多个订单,但单个订单只能属于一个客户
。
多对一 - 第一个表的
许多行与第二个表的单个行相关联。例如,学生和大学
之间的关系是多对一的,因为大学可以有很多学生,但学生一次只能在一所大学学习。
多对一 - 第一个表的
多行与第二个表的单行相关联。例如,学生和大学表
之间的关系是多对一的,因为大学可以有很多学生,但学生一次只能在一所大学学习。
多对多 - 第一个表的
许
多行与第二个表的多行相关联。例如,学生和课程表之间的关系是多对多的,因为学生可以一次学习很多课程,并且可以将课程分配给许多学生。
多对多 - 第一个表的多行与第二个表的多行相关联。例如,学生和课程表之间的关系是多对多的,因为学生可以一次学习很多课程,并且可以将课程分配给许多学生。
**在查询优化的上下文**
中:
在查询方面,基数是指表中列的唯一性。具有所有唯一值的列将具有高基数,并且具有所有重复值的列将具有低基数。这些基数得分有助于查询优化。
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录