SQL数据库 - (二)关系数据库
一、关系模型
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
1.关系模型的数据结构——关系
关系模型中数据的逻辑结构是一张二维表。
2.关系操作
关系操作包括:选择(select)、投影(project)、连接(join)、除(divide)、并(union)、交(intersection)、差(difference)等查询(query)操作和增(insert)、删除(delete)、修改(update)等更新操作两大部分。查询的表达能力是其中最主要的部分。
3.关系的三类完整性约束
允许定义三类完整性:实体完整性、参照完整性和用户自定义的完整性。
二、关系数据库基本概念
关系:
是笛卡尔积的子集,所以关系也是一个二维表。
元组:
对应表的每行
域:
对应表的每列
属性(Attribute):
由于域可以相同,为了加以区分,必须对每列起一个唯一的名字。
候选码(Candidate key):
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。关系至少含有一个候选码。
主码(Primary key):
若一个关系有多个候选码,则选定其中一个为主控使用者称为主码。
主属性(Prime attribute):
候选码中的诸属性。
非主属性(Non-key attribute):
不包含在任何侯选码中的属性。 在最简单的情况下,侯选码只包含一个属性。
全码(All-key):
关系模式的所有属性组是这个关系模式的侯选码,称为全码(All-key)。
① 列是同质的(Homogeneous),即每一列中的分量是同一类型的数据,来自同一个域。
② 不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。
③ 列的顺序无所谓,即列的次序可以任意交换。
④ 任意两个元组不能完全相同。
⑤ 行的顺序无所谓,即行的次序可以任意交换。
⑥ 分量必须取原子值,即每一个分量都必须是不可分的数据项。三、关系完整性
规则2.1 实体完整性规则:若属性组(或属性)K是基本关系R的主码(或称主关键字),则所有元组K的取值唯一,并且K中属性不能全部或部分取空值。
规则2.2 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S可能是相同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。
用户定义的完整性就是针对某一具体应用的关系数据库所制定约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
四、关系运算
⒈ 选择(Selection)σ
⒉ 投影(Projection)∏
⒊ 连接(Join)∞
- 等值连接(equijoin)
- 自然连接(Natural join):等值链接后消除重复属性
4.除(Division)
举例:
设教学数据库中有三个关系,学生关系:S(SNO,SN,AGE,SEX)、学习关系:SC (SNO,CNO,SCORE)、课程关系:C (CNO,CN,TEACHER)
(1)检索学习课程号为C3的学生学号和成绩
∏SNO,SCORE(σCNO=’C3’(SC))
(2)检索学习课程号为C3的学生学号和姓名
∏SNO,SN(σCNO=’C3’(S∞SC))
(3)检索学习课程名为MATHS的学生学号和姓名
∏SNO,SN(σCN=’MATHS’(S∞SC∞C))
(4)检索学习课程号为C1或C3的学生学号
∏SNO (σCNO=’C1’V’CNO=’C3’(SC))
(5)检索不学习课程号为C2的学生的姓名和年龄
∏SN,AGE(S)- ∏SN,AGE (σCNO=’C2’(S∞SC))(6)检索学习全部课程的学生姓名
∏SN(S∞(∏SNO,CNO(SC)÷∏CNO(C)))(7)检索所学课程包括200401所学课程的学生学号
∏SNO,CNO(SC)÷∏CNO(σSNO=’200401’(SC))
转载于:https://www.cnblogs.com/yuexiarenjing/archive/2013/04/18/3028785.html
SQL数据库 - (二)关系数据库相关推荐
- 【数据库】关系数据库标准sql语言
3:关系数据库标准语言SQL DDL操作(3) 创建数据库 sqlserver CREATE DATABASE database_name [ON { [PRIMARY] (NAME=logical_ ...
- sql 数据库前两列值乘_数据库的基本概念:
数据库的相关概念: 数据-data: 1.描述事物的符号 2.多种表现形式:文本,图形,音频,视频. 数据库-Database,DB 1.粮库,车库 2.存放数据的仓库在计算机中,按照一定的格式存放, ...
- SQL数据库不用SQL语句能显示全表的内容_2020别再说你了解数据库了,你搞清楚这些问题了吗?...
程序员中一直有一个段子广为流传:大不了我们"删库跑路" 由此可见作为一个程序员,不了解数据库怎么能行,那么数据库到底是个啥呢,作为一个Java工程师,平时和数据库打交道着实不少,所 ...
- 【Oracle SQL数据库-教学2】--- Oracle数据库基础
[Oracle SQL数据库-教学2]- Oracle数据库基础 文章目录 [Oracle SQL数据库-教学2]--- Oracle数据库基础 本期主要内容: 一. 数据库管理系统概述 ① 数据处理 ...
- 讲解SQL数据库语句
前言 大家好,我是 Vic,今天给大家带来讲解SQL数据库语句的概述,希望你们喜欢 数据库语句 create database teach; use teach; create table `teac ...
- SQL数据库基础知识-巩固篇一
SQL数据库基础知识-巩固篇<一>... 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用了> MySQL-57 D ...
- 只知道SQL数据库?又一国产数据库语言诞生了
一.为什么学习数据库? 学习数据库,你肯定需要先了解它,这样你才知道你为什么要学习它,数据库除了SQL还有一些别的数据库,了解它们的作用,可以在不同的场景选择最符合的一个数据库. 1.1 什么是数据库 ...
- 在ASP.NET中使用WINDOWS模式登录SQL数据库
作者:未知 请作者速与本人联系 经常发现有用户使用WINDOWS模式登录SQL SERVER,结果失败,提示: 用户 'KEKC/ASPNET' 登录失败. 说明: 执行当前 Web 请求期间,出 ...
- 物流信息管理系统MySQL设计,物流管理系统的SQL数据库设计(含代码)
物流管理系统的SQL数据库设计(含代码) 物流管理信息系统的数据库设计班级xxx系统名称:物流管理信息系统一.需求分析物流管理系统是为制造商和零售商设计的管理系统数据库系统,目的是:1.实现上游制造商 ...
- C# 连接SQL数据库字符串
一:C# 连接SQL数据库 Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=m ...
最新文章
- C语言可以不用,但是不能不会!
- 微信攻城三国怎么找服务器,攻城三国怎么玩 新手FAQ常见问题答案汇总[图]
- pythonurllib模块-Python中的urllib模块使用详解
- tilemap 导入unity_教程|Unity中使用Tilemap快速创建2D游戏世界
- cdecl、stdcall、fastcall函数调用约定区别
- Ancient Distance(妙啊!!!) [2020牛客暑期多校训练营(第四场)]
- Windows10远程报错:由于CredSSP加密Oracle修正
- 液压支架销轴力学计算分析研究_技术 | 篦冷机液压管路问题分析及改造措施
- tf.app.flags的使用教程
- MySQL Shell 教程
- 4×4键盘板:ATMEGA328接口
- Centos下安装Pure-ftpd
- word恢复默认样式
- FreeSurfer数据质量指标:欧拉数Euler Number
- IE 零日漏洞风险评估
- LT1961 升压型稳压器造就了兼具升压和降压能力的扁平状SEPIC
- java代码获取本周的开始日期和结束日期,并动态获取前几周的或者后几周的开始日期和结束日期。
- Excel黑科技——Sum、indirect、Row的使用
- overlay文件系统解析
- mysql的基本内容介绍简书_MySQL 基本内容