数据库 学习笔记(二) 关系数据库

数据模型是描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。

关系模型利用表的集合来表示数据和数据间的联系。

关系模型在逻辑层和视图层描述数据,用户不必关注数据存储的底层细节。

2.1 关系数据库的结构

在关系模型的术语中,关系(relation)用于只代表,元组(tuple)指代行,属性(attribute)指代表中的列。关系实例(relation instance):表示一个关系的特定实例(表中一组特定的行)。注:元组在关系中出现的顺序是无关紧要的。对于关系的每个属性,都存在一个允许取值的集合,称为该属性的域(domain)。如果域中的元素被看作是不可再分的单元,则域是原子的(atomic)。

空(null)值表示未知或不存在。空值给数据库访问和更新带来很多困难,因此应尽量避免使用空值。

2.2 数据库模式

数据库模式(database schema):数据库的逻辑设计

数据库实例(database instance):某时刻数据库中数据的一个快照

注:关系可看作变量;关系模式(一般来说,由属性序列及属性对应域组成)可看作类型定义;关系实例可看作变量的值

2.3 码

一个关系中没有两个元组在所有属性上的取值都相同。

超码(superkey):一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一地标识一个元组。

设R表示关系r模式中的属性集合。如果我们说R的一个子集是r的一个超码,则限制了关系r中任意两个不同元组不会再K的所有属性上取值完全相等。即:如果t1和t2在r中且t1不等于t2,则t1.K不等于t2.K。

候选码(candidate key):最小的超码(任意真子集都不能成为超码)。--几个不同的属性集都可以做候选码的情况是存在的。

主码(primary key):被数据库设计者选中的,用于在一个关系中区分不同元组的候选码。

一个关系模式(r1)可能在它的属性中包含另一个关系模式(r2)的主码。这个属性在r1上称作参照r2的外码(foreign key),关系r1称为外码依赖的参照关系(referencing relation),关系r2称作外码的被参照关系(referenced relation)。参照完整性约束(referential integrity constraint):要求在参照关系中任意元组在特定属性上的取值必然等于被参照关系中某个元组在特定属性上的取值。

2.4 关系运算

时间: 2024-10-06 01:32:17

数据库 学习笔记(二) 关系数据库的相关文章

[转]mnesia数据库学习笔记

mnesia数据库学习笔记一 mnesia数据库学习笔记二 mnesia数据库学习笔记三 mnesia数据库学习笔记四

MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4085684.html 联系方式:[email protected] [正文] 这一周状态不太好,连续打了几天的点滴,所以博客中断了一个星期,现在继续. 我们在之前的几篇文章中学习了JDBC对数据库的增删改查.其实在实际开发中,一般都是使用第三方工具类,但是只有将之前的基础学习好了,在使用开源工具的

MYSQL数据库学习笔记1

MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 修改表 表的增删查改 查询 数据库概念 数据库是一种对大量信息进行管理的一种方法. 数据库系统从结构上看,也是可以分为三层的: 物理层:数据实际如何存储 逻辑层:存储的是什么数据,以及数据间是什么关系 试图层:提供给用户的部分数据 关系数据库 目前关于数据库模型最主流的有两种, 一种叫做关系型数据库,这

Spring Batch学习笔记二

此系列博客皆为学习Spring Batch时的一些笔记: Spring Batch的架构 一个Batch Job是指一系列有序的Step的集合,它们作为预定义流程的一部分而被执行: Step代表一个自定义的工作单元,它是Job的主要构件块:每一个Step由三部分组成:ItemReader.ItemProcessor.ItemWriter:这三个部分将执行在每一条被处理的记录上,ItemReader读取每一条记录,然后传递给ItemProcessor处理,最后交给ItemWriter做持久化:It

MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(九)----JDBC的PreparedStatement接口重构增删改查 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit.Rollback命令进行事务的提交与回滚.实际上在JDBC中也存在事务处理,如果要想进行事务处理的话,则必须按照以下的步骤完成. JDBC中事务处理的步骤: 1.要取消掉JDBC的自动提交:void setAutoCommit(boolea

《SQL必知必会》学习笔记二)

<SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语句,但是实际应用中的业务逻辑往往会非常复杂,所以会用到一些比较复杂的查询,如子查询,联合查询. 1.子查询 当一个查询是另一个查询的条件时,称为子查询.但是说到子查询又不的不说它与嵌套查询两者的区别,下面一张图来说明 下面再用一条sql语句来说明他们的关系. 其中在查询中又分为嵌套子查询和相关子查询,他们之间

公益图书馆-学习笔记二

1.在视图中显示控制器变量. 在控制其中为变量赋值即可,如 $this->info_user=$user;然后在视图中可直接使用. 2.html显示数组使用 volist标签 <volist name="info_user" id="vo"> {$vo.username} {$vo.email}即可使用数组里的键值对 3.隐藏button <button type="submit" style="display:

马哥学习笔记二十六——MySQL主从复制

配置MySQL复制基本步骤: 一.master 1.启用二进制日志 log-bin = master-bin log-bin-index = master-bin.index 2.选择一个惟一server-id server-id = {0-2^32} 3.创建具有复制权限的用户 REPLICATION SLAVE REPLICATION CLIENT 二.slave 1.启用中继日志 relay-log = relay-log relay-log-index = 2.选择一个惟一的server

Caliburn.Micro学习笔记(二)----Actions

Caliburn.Micro学习笔记(二)----Actions 上一篇已经简单说了一下引导类和简单的控件绑定 我的上一个例子里的button自动匹配到ViewModel事件你一定感觉很好玩吧 今天说一下它的Actions,看一下Caliburn.Micro给我们提供了多强大的支持 我们还是从做例子开始 demo的源码下载在文章的最后 例子1.无参数方法调用 点击button把textBox输入的文本弹出来 如果textbox里没有文本button不可点,看一下效果图 看一下前台代码 <Stac

2. 蛤蟆Python脚本学习笔记二基本命令畅玩

2. 蛤蟆Python脚本学习笔记二基本命令畅玩 本篇名言:"成功源于发现细节,没有细节就没有机遇,留心细节意味着创造机遇.一件司空见惯的小事或许就可能是打开机遇宝库的钥匙!" 下班回家,咱先来看下一些常用的基本命令. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48092873 1.  数字和表达式 看下图1一就能说明很多问题: 加法,整除,浮点除,取模,幂乘方等.是不是很直接也很粗暴. 关于上限,蛤蟆不太清楚