关系数据库

关系模型         定义:以二维表的形式表示实体和实体之间联系的数据模型称为关系数据模型。 从模型的三要素角度看,关系模型的内容为:

( 1 )数据结构:一张二维表格。

( 2 )数据操作:数据表的定义,检索、维护、计算等。

( 3 )数据约束条件:表中列的取值范围即域值的限制条件。

关系模型的几个常见概念:

( 1 )关系:一个关系就是一张二维表,每个关系都有一个关系名,即数据表名。        ( 2 )元组:表中的行称为元组,一行就是一个元组,对应表中一条记录。

( 3 )属性:表中的列称为属性,即字段。字段名称为属性名,字段值称为属性值。        ( 4 )域:  属性的取值范围,如,分数在 0 ~ 100 之间。

( 5 )关键字:表中的一个属性(组),它的值可以唯一地标志一个元组。如:学号。        ( 6 )候选码:表中的某一个属性,它的值可以唯一地标志一个元组。一个表中可能有多个候 选码,选择一个作为主键,主键的属性称为主属性。

(7) 外关键字:如果一个关系中的属性或属性组并非该关系的关键字,但它们是另外一个关 系的关键字,则称其为该关系的外关键字。

关系模型的完整性 :  关系模型的完整性是保证关系数据表正确的关键。

关系模型支持实体完整性约束、参照完整性约束和域约束 3 种完整性约束。 •

( 1 )实体完整性约束             假设 A 是一个表 R 的主键,则 A 不能接收空值,即单列主键的值不能为空.       复合主键的任何列都不能接收空值。

( 2 )参照完整性约束             参照完整性约束关心的是逻辑相关的表中值与值之间的关系。   假设 X 是一个表 A 的主键,在表 B 中是外键,那么若 K 是表 B 中一个外部键值, 则表 A 中必然存在在 X 上的值为 K 的记录。

( 3 )域约束     域是逻辑相关的值的集合,从域中可以得出特定列的值。     例如,在学生信息表中: ●“出生日期”域的值必须按照特定的统一格式存放,而不能有时用: 1986.12.23 格 式,有时用: 12/23/1986 格式,造成数据混乱; ●“学生名字”、“院系名称”等域的值必须属于字符集合; ●对于“性别”,该域中的值必须局限于男、女等。        ( 4 )数据库范式

本讲中只介绍第一范式 (1NF) 、第二范式 (2NF) 、第三范式 (3NF) 、第四范式 (4NF) 。 这 4 种范式,这对于绝大多数数据库来说已经足够了。

第一范式          (1)每个列的值都是不可分的简单数据项。

• 第二范式       (1)所有表必须符合第一范式;      (2)表中每一个非主键列都必须完全函数依赖于主键(关键字)。                    Patient_Id、Visit_Id、Oper_Id • 第三范式       (1)所有表必须符合第二范式。      (2)表中每一个非主键列对主键都不存在传递依赖,而应是直接依赖。(一个表中已有的非主 键列不能在其他表中也存在)            Med_Pat_Master_Index表中的name字段,在其他表中就不能再存在。否则就会出现大量数据 冗余

第四范式

第四范式禁止了主键列和非主键列之间的一对多关系。

在表中,一个学生可以有多种喜欢的运动,也可以有多类喜欢的图书。这样在 同一表中具有这样两个不相关的列, 与主键存在多对一关系,使得表中存在冗 余现象和不对称情况 , 因为不知道每个人的喜好情况,也就无法知道哪列的值 多,哪列的值少,使得表格中出现了很多不规则的空白。

解决的方法同样是在遵守无损分解的条件下,将表分解成多个表,从而消除传 递依赖的情况。

关系数据库sql语言

语言: SQL • Structured Query Language ,结构化查询语言

。 SQL 语言的功能包括查询、操纵、 定义和控制,是一个综合的、通用的关系数据库语言,同时又是一种高度非过程化 的语言,只要求用户指出做什么而不需要指出怎么做。

• SQL标准: SQL-86 : ANSI/ISO 的第一个标准

SQL-89 :增加了引用完整性

SQL-92 :被数据库管理系统( DBMS )生产商广泛接受

SQL-99 :各种连接 jion 操作语法

SQL-2003 :包含 XML 相关内容,自动生成列值

SQL-2006 :定义了 SQL 与 XML (包含 XQuery )的关联应用

玩转oracle 11g(45):关系数据库相关推荐

  1. 玩转oracle 11g(1):Oracle 11g的安装

    由于工作需要,本人现在要对oracle 11g做一段攻坚战,先从安装开始 基本是傻瓜程序,网上也有大量教程 1 安装数据库软件 安装前准备工作 a.必须使用超级用户安装(adminstrator) b ...

  2. 玩转oracle 11g(44):数据库发展历史

    数据库发展历史 数据库技术从 20 世纪 60 年代开始到现在一共经历了三个发展阶段:  第一代是网状.层次数据库系统      网状 :通用电气公司 Bachman 等人在 1961 年开发成功的 ...

  3. 玩转oracle 11g(23):区分大小写和字符集不同

    7. 11g默认开始密码区分大小写 可以通过把参数设置为 SEC_CASE_SENSITIVE_LOGON =FALSE 屏蔽 alter system set  SEC_CASE_SENSITIVE ...

  4. 玩转oracle 11g(22):ora-01691和修改密码过期时间

    5. 增加新的数据文件 报:ORA -01691错误 解决描述: 在对应表空间增加新的数据文件 1. select * from dba_data_files ; 查询出表空间的数据文件路径 2.通过 ...

  5. 玩转oracle 11g(18):数据库相关日志文件位置

    数据库相关日志文件 10g 相关路径 警告日志 D:\oracle\product\10.2.0\admin\docare\bdump\alert_docare.log 监听日志文件 D:\oracl ...

  6. 玩转oracle 11g(43):oracle导出空表

    因为11G数据库在CREATE表后数据库不会立刻给该表分配物理存储空间,所以导出数据库的时候自然而然不会导出该表. 解决方案:在导出表服务器上找出所有数据为空的表,批处理的给没有数据行的数据表分配存储 ...

  7. 玩转oracle 11g(42):增加表空间

    --查询表空间 select t.tablespace_name,         d.file_name,     d.autoextensible,     d.maxbytes,     d.s ...

  8. 玩转oracle 11g(37):rman备份-数据库指定文件恢复

    .数据库指定数据文件恢复 启动数据库的时候报错 ORA-01157: cannot identify/lock data file 5 - see DBWR trace file ORA-01110: ...

  9. 玩转oracle 11g(36):rman备份-控制文件丢失恢复

    ORA-00205: error in identifying control file, check alert log for more info 检查oracle的报警日志包含类似报错: ORA ...

最新文章

  1. html在线缓存视频,javascript – 如何为HTML视频添加缓冲
  2. python画柱状图 画折线图
  3. 唐杉博士:人工智能芯片发展及挑战
  4. linux的FHS文件系统目录介绍
  5. Linux对用户态的动态内存管理
  6. python文件输入和输出
  7. 格力发布公告称双11期间让利30亿元打击低质伪劣产品
  8. 2018 “百度之星”程序设计大赛 - 初赛(A)P1001度度熊拼三角(贪心)
  9. python方式下自动登录51cto
  10. linux安装中文输入法sc,Ubuntu 设置中文输入法
  11. python baidu语音转文字
  12. android图案解锁忘了怎么解,安卓手机解锁图案忘了怎么办?手机解锁密码忘了怎么办?...
  13. 第八届北京国际电影节开幕 首次发布中国电影大数据
  14. 《excel应用大全》(excel home 编著)--学习摘抄笔记2
  15. 给你的Blog加条小金鱼
  16. 邵东一中2021年高考成绩查询,湖南邵阳2020高考成绩,邵东一中势头强劲,包揽邵阳市文理状元...
  17. QCC51XX---如何修改MDE的主题
  18. php yii2框架仿站教程,从零开始学YII2框架(六)高级应用程序模板,yii2框架
  19. spreadtrum展信平台加密Secure boot流程
  20. QQ收集表图片批量导出

热门文章

  1. 【SQLSERVER】SQL SERVER 2008筛选表报错
  2. Ubuntu 手动安装JDK
  3. [Silverlight]奇技银巧系列-2
  4. 核心技术java基础_JAVA核心技术I---JAVA基础知识(集合set)
  5. python 战舰_简单Python战舰
  6. 菜鸟postman接口测试_postman 接口测试(转)
  7. python数据结构的应用场景不包括,Python 数据结构学习
  8. flask jinja2 如何遍历新闻列表
  9. 关于gcc、glibc和binutils模块之间的关系
  10. 类模板特化之经典(一)