關聯式資料庫模型The relational data model

news2024/11/18 19:58:38

RELATIONAL MODEL關係模型

  • 結構化查詢語言(SQL)基礎
    foundation of structured query language (SQL)
  • 許多資料庫設計方法的基礎
     foundation of many database design methodologies
  • 資料庫研究基礎
    foundation of database research

關係(Relation)

關係是一個有列和行的表格 Relation is a table with columns and rows 又稱為table或是file.

關係是無序的,且為域列表的笛卡爾積的命名子集

笛卡兒積 笛卡兒積

給定一組域D1,D2,…,Dn(它們可以有相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡爾積為D1×D2×。 ..×Dn={(d1, d2, …, dn)|di∈Di,i=1,2,…,n}
由定義可以看出,笛卡爾積也是一個集合。

關係性質PROPERTIES OF A RELATION

  • 區別於其他關係的名稱(獨一)
  • 沒有重複的元組
  • 元組中的性質是原子的(不能有合集或多個值)
  • 屬性的值來自單一域
  • 不允許組合資料類型的操作
  • 每個屬性都有一個不同的名稱(單一)
  • 屬性和元祖都是無序的

域 (domain) :

允许的属性取值构成的集合,属性的取值范围),例如: WorkDay is the set of {Mon,Tue,Wed,Thu,Fri,Sat,Sun} , 又或者「性別」屬性的內含值,必須是「男生」或「女生」。員工號碼的資料型態 (Data Type) 可 能為 CHAR(9),表示該值域之範圍是在 9 個字元長度以內。年齡只允許正整數等等...關係是一個有列和行的表格 Relation is a table with columns and rows 又稱為 

原子域 (atomic domain):

所有的域都是原子資料(Atomic Data)。例如整數、字串是原子數據,集合、堆疊屬於非原子數據,第一模型關係的這種限制稱為範式(1NF)條件

屬性(ATTRIBUTE)

描述事物的一些特徵稱為屬性。例如學號、姓名、職位、年齡等。又稱為column or field

元組(Tuple)

是關係的一行(row)。又稱為 row 或是 record

度、目(Degree) 

is the number of attributes in a relation(属性数)

實體關係模型(ENTITY RELATIONSHIP MODEL)

實體之間的關係、關聯,保存特定資訊的實體、表
實體(ENTITY):
  • 是指用以描述真實世界的物件。也可以是邏輯抽象的概念(例如帳號、工作)
  • 必須可以被識別,亦即能夠清楚分辨出兩個不同的實體。
  • .實體都是以「名詞」的型式來命名,不可以是「形容詞」或「動 詞」。
弱實體(weak entity) 
  • 必須依靠其他實體才能存在
  • 其主鍵包括父實體的主鍵 ,例如LineItem 或 OrderItem - 取決於對應的產品
強實體(strong entity) 
  • 不依靠其他實體存在
  • 沒有外鍵或外鍵可以為空的關係,例如Product relation

強實體與弱實體的連結只能是1:1或1:N

實體又可分為實體集合 ( Entity Set )實體類型 ( Entity Type ) 與 實例 ( Instance )

實體集合 (Entity Set)

它們都 具有相同的特性

實體類型 (Entity Type)

例如將 上圖的實體集合稱為學生實體類型 (Entity Type)

實例 (Instance)

而 Randy 、Admas 及 George 就稱為 學 生實體類型中的實例 (Instance) 。

屬性(ATTRIBUTES)

用來描述實體的性質(Property) (Property)。屬性具有名稱、關聯實體、合法值域( domain of legal values)

屬性類型
  • 簡單屬性 simple attributes
  • 複合屬性 composite attributes
  • 多值屬性 multivalued attributes
簡單屬性

已經無法再繼續切割成其他有意義的單位,亦即該屬性為 基元值(Atomic Value) 

【例如】「學號」屬性便是「簡單屬性」。 「地址」就不算是簡單屬性,因為它還可以再切割成區域號 碼、 縣市、鄉鎮、路、巷、弄、號等小單位。

複合屬性 composite attributes

由兩個或兩個以上的其他屬性的值所組成。

【例如】 「地址」屬性是由區域號碼、縣市、鄉鎮、路、巷、弄、號等 各個屬性所組成。

【適用時機】戶政事務查詢,房屋仲介網站… 那些屬性是屬於「複合屬性」呢?必須要視需求而定。一般使用者在 設定客戶資料表或學生資料表時, 「地址」屬性是視為「簡單屬性」。 【優點】大量查詢時,較快速。 where 地址 Like ‘*苓雅區*’速度較慢 where 區域=‘苓雅區’ 速度較快

多值屬性 multivalued attributes

屬性值可能不只一個時,比如一張唱片的作曲人,可能有ABC、CDF

衍生屬性 (Derived attributes)

是指它的值可以由其它屬性之值經由某種方式的計算或推論而獲得的。例如:「年齡」、 「星座」可由生日推算出來。因此又稱為推導屬性。它可以不用實際存於資料庫中。

值key

  • 候選鍵 Candidate Key
  • 複合鍵 Composite Key
  • 主鍵 Primary Key
  • 次要鍵 Secondary Key
  • 交替鍵 Alternate Key
  • 外鍵 Foreign Key
  • 自然鍵 Natural Key
  • 代理鍵 Surrogate Key
候選鍵 Candidate Key

候選鍵就是主鍵的候選人,並且也是關聯表的屬性子集所組成。

一個屬性(欄位)是要成為候選鍵,則必須同時要符合下列兩項條件:

        1.具有唯一性 是指在一個關聯表中,用來唯一識別資料記錄的欄位。 例如:超鍵(Super Key) (Super Key)。但可以是由多個欄位組合{縣市+區域}而 成。

        2.具有最小性 是指除了符合「唯一性」的條件之外,還必須要在該「屬性子集」中 移除任一個屬性之後,不再符合唯一性。亦即鍵值欄位個數為最小。 例如: {縣市+區域}組合成來符合「唯一性」的條件。並且在移除任 一個屬性{區域}之後, {縣市}不再符合唯一性。

若候選鍵只包含一個屬性時,稱為簡單(simple) (simple)候選鍵。 例如: {學號} 若包含兩個或兩個以上屬性時,稱為複合(composite) (composite)候選鍵。 例如: {縣市+區域}

複合鍵 Composite Key

是指資料表中的主鍵,是由兩個或兩個欄位以上所組成,這種 主鍵稱為複合鍵(Composite Key) (Composite Key)。 當表格中某一欄位的值無法區分資料記錄時,可以使用這種方法

例如:

在表2-2a中「縣市」的欄位值有重複,無法區分出每一筆記錄,所以 「縣市」欄位不能當作主鍵欄位。因此,必須要把「縣市」與「區域」 兩個欄位組合在一起,當作主鍵欄位。如表2-2b所示。

主鍵 Primary Key

是指用來識別記錄的唯一性,它不可以重複及 空值(Null)。

次要鍵 Secondary Key

主要的功能是提供資料索引。資料庫系統中,除了主鍵這個唯一的識別值,可以用做索引外,也可以設定其他欄位用作資料索引,這類的鍵值並不是主鍵,但因為資料內容並不會重複,所以也可作為資料索引,這就是次要鍵。

交替鍵 Alternate Key

在一個關聯中,只有一個主鍵,若候選鍵未被選為主鍵時,則稱為 「交替鍵(Alternate Key) (Alternate Key)」。

自然鍵 Natural Key

又稱為商業鍵 (Business Key) 或domain key,是由人可以識別並且帶有一定商業 含義的屬性所組成。例如:身分證號碼,如果保證是唯一,可以被選定為自然鍵,用於確 定一個人。員工實體的(姓名,性別,生日,地址) 四個自然的屬性也可以被選為不重複的 複合主鍵。但是,相同的實體在不同的公司系統中可能會有不同的自然鍵。

容易有問題,例如規則改變時,例如假設名字跟生日是作為員工的自然鍵是ok的但是當雇用越來越多人時會出現同樣的名字跟生日

代理鍵 (Surrogate Key

又稱為 synthetic key 或 pseudokey。即時商業規則改變也較穩定。

是在當實體中沒有明顯的候選鍵,或是候選鍵都不適合當主鍵時,例如,屬性資料太長, 或屬性太多,或屬性太複雜,或屬性意義層面太多,或有性能問題 (Performance Issue), 就會利用一個沒有商業意義的但唯一的字段來代替作為主鍵。

代理鍵值通常是由資料庫管理系統產生的。Sybase 和 SQL Server 用 Identity Column。 Oracle 用 SEQUENCE。它可以自動產生唯一的遞增序列整數 (Unique Sequences Integer) 。 另一種技術是寫一個 ID 產生程序 (Universal Identity Generator) , 它可以自動產生唯一的 序列整數,也可以產生唯一的隨機整數 (Unique Random Number) 。 代理鍵值沒有商業意義,因此一般來說,不顯示給使用者看,也不顯示在表單與報表中。 但是程序設計師在寫應用程序時,常常用它來連接多個資料表 (Tables Join) 來得到資料。

外鍵 Foreign Key

是指用來建立資料表之間的關係,其外鍵內含值 必須要與另一個資料表的主鍵相同。

關係類型RELATIONSHIP TYPES

  • 一對多 One to many (1:M)
  • 一對一 One to one (1:1)
  • 多對多 Many to many (M:N)
  • Unary (Recursive)
  • Ternary

一對多 One to many (1:M)

一對多的關係(1:M):表示兩個實體之間的關係是一對多的關係。

【舉例】假設每一位教授可以同時指導多位研究生,但每一位研究生只 能有一位指導教授,不可以有共同指導現象。

【說明】:每一位教授可以指導多位研究生,但每一位研究生只能有一位指導教授。

一對一 One to one (1:1)

表示兩個實體之間的關係是一對一的關係。

【舉例】假設每一位老師僅能分配一間研究室,並且每一間研究室只能 被一位老師使用。

多對多 Many to many (M:N)

表示兩個實體之間的關係是多對一的關係。

【舉例】一名員工負責多個專案; 一個專案有許多員工參與其中

Unary (Recursive)

Ternary

INTEGRITY RULES

WAIT TO BE EDITED

http://cc.cust.edu.tw/~ccchen/doc/db_03.pdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1059705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Curve 文件存储的缓存策略

Curve 文件存储简介 Curve 文件存储的架构如下: 客户端 Posix 兼容:像本地文件系统一样使用,业务无缝接入,无侵入性; 独立的元数据集群:元数据分布式设计,可以无限扩展。同一文件系统可以在数…

Elasticsearch:什么时候应该考虑在 Elasticsearch 中添加协调节点?

仅协调节点(coordinating only nodes)充当智能负载均衡器。 仅协调节点的这种特殊角色通过减轻数据和主节点的协调责任,为广泛的集群提供了优势。 加入集群后,这些节点与任何其他节点类似,都会获取完整的集群状态&…

基于Java的医院挂号就诊系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

yolov5检测cs2中的目标

环境介绍 系统:Windows11 显卡:4070ti cuda:11.8 配置环境 python环境 安装python的虚拟环境anaconda。Free Download | Anaconda 成功安装后可以按Win键搜索anaconda,可以看到桌面版和命令行版本,我们这里直接用命令行版本…

VUE3照本宣科——响应式与生命周期钩子

VUE3照本宣科——响应式与生命周期钩子 前言一、响应式1.ref()2.reactive()3.computed()4.watch()5.代码演示 二、defineProps() 和 defineEmits()三、生命周期钩子1.onMounted()2.onUpdated()3.onUnmounted()4.onBeforeMount()5.onBeforeUpdate()6.onBeforeUnmount()7.onError…

公众号突破2个限制技巧

许多用户在注册公众号时可能会遇到“公众号显示主体已达上限”的问题。这是因为在2018年11月16日对公众号注册数量进行了调整,具体调整如下:1、个人主体注册公众号数量上限从2个调整为1个。2、企业主体注册公众号数量上限从5个调整为2个。这意味着&#…

vs2015 执行后出来空白界面的解决

为什么在visual studio上写的代码点击开始执行,出来的是空白界面?(代码没问题)? - 知乎 Visual Studio 2015 - 新建 C/C 项目 (Project)_vs2015创建一个c项目-CSDN博客

微信小程序点单左右联动的效果实现

微信小程序点单左右联动的效果实现 原理解析:   点击左边标签会跳到右边相应位置:点击改变rightCur值,转跳相应位置滑动右边,左边标签会跳到相应的位置:监听并且设置每个右边元素的top和bottom,再判断当…

Linux内存管理 | 一、内存管理的由来及思想

我的圈子: 高级工程师聚集地 我是董哥,高级嵌入式软件开发工程师,从事嵌入式Linux驱动开发和系统开发,曾就职于世界500强企业! 创作理念:专注分享高质量嵌入式文章,让大家读有所得! …

Linux系统常用指令篇---(一)

Linux系统常用指令篇—(一) 1.cd指令 Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。 语法:cd 目录名 功能:改变工作目录。将当前工作目录改变到指定的目录下。 (简单理解为进入指定目录下) 举例: cd .. : 返…

maven 初学

1. maven 安装 配置安装 路径 maven 下载位置: D:\software\apache-maven-3.8.6 默认仓库位置: C:\Users\star-dream\.m2\repository 【已更改】 本地仓库设置为&#xff1a;D:\software\apache-maven-3.8.6\.m2\repository 镜像已更改为阿里云中央镜像仓库 <mirrors>…

文件编码格式

一、问题场景 笔者在写controller层出现了一些小问题&#xff1a;测试controller层的一些请求的时候&#xff0c;后端控制台打印的是乱码&#xff0c;网上找了很多说改UTF-8的&#xff0c;但是我去设置里面全部都改为UTF-8了&#xff0c;结果仍然无济于事&#xff0c;甚至还把…

flink自定义窗口分配器

背景 我们知道处理常用的滑动窗口分配器&#xff0c;滚动窗口分配器&#xff0c;全局窗口分配器&#xff0c;会话窗口分配器外&#xff0c;我们可以实现自己的自定义窗口分配器&#xff0c;以实现我们的自己的窗口逻辑 自定义窗口分配器的实现 package wikiedits.assigner;i…

camtasia 2023怎么导出mp4

MP4是常见的视频格式之一&#xff0c;那么使用电脑录屏软件Camtasia完成对视频的剪辑后&#xff0c;如何将其导出为MP4格式保存在我们的电脑中呢&#xff1f; 1.剪辑好视频后&#xff0c;我们找到软件界面右上角的“导出”按钮。 Camtasia Studio- 2023 win-安装包&#xff1a…

【数据结构】布隆过滤器

布隆过滤器的提出 在注册账号设置昵称的时候&#xff0c;为了保证每个用户昵称的唯一性&#xff0c;系统必须检测你输入的昵称是否被使用过&#xff0c;这本质就是一个key的模型&#xff0c;我们只需要判断这个昵称被用过&#xff0c;还是没被用过。 方法一&#xff1a;用红黑…

C/C++学习 -- 分组加密算法(DES算法)

数据加密标准&#xff08;Data Encryption Standard&#xff0c;DES&#xff09;是一种对称密钥加密算法&#xff0c;是信息安全领域的经典之作。本文将深入探讨DES算法的概述、特点、原理&#xff0c;以及提供C语言和C语言实现DES算法的代码案例。 一、DES算法概述 DES算法是…

【网络安全---XSS漏洞(1)】XSS漏洞原理,产生原因,以及XSS漏洞的分类。附带案例和payload让你快速学习XSS漏洞

一&#xff0c;什么是XSS漏洞&#xff1f; XSS全称&#xff08;Cross Site Scripting&#xff09;跨站脚本攻击&#xff0c;为了避免和CSS层叠样式表名称冲突&#xff0c;所以改为了XSS&#xff0c;是最常见的Web应用程序安全漏洞之一&#xff0c;位于OWASP top 10 2013/2017年…

idea配置文件属性提示消息解决方案

在项目文件路径下找到你没有属性提示消息的文件 选中&#xff0c;ok即可 如果遇到ok无法确认的情况&#xff1a; 在下图所示位置填写配置文件名称即可

lv7 嵌入式开发-网络编程开发 06 socket套接字及TCP的实现框架

目录 1 socket套接字 1.1 体系结构的两种形式 1.2 几种常见的网络编程接口 1.3 socket套接字 2 socket常用API介绍 2.1 API 2.2 地址族结构体 2.3 套接字类型 2.4 socket套接字 3 TCP通信的实现过程 4 练习 1 socket套接字 1.1 体系结构的两种形式 网络的体系结构 …

想要精通算法和SQL的成长之路 - 二叉树的判断问题(子树判断 | 对称性 | 一致性判断)

想要精通算法和SQL的成长之路 - 二叉树的判断问题 前言一. 相同的树二. 对称二叉树三. 判断子树 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 相同的树 原题链接 这题目典型的递归题&#xff1a; 如果两个节点都是null&#xff0c;我们返回true。如果两个节点一个nul…