




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.1 数据库及其系统概念了解数据库、数据库管理系统、数据库系统等基本概念理解数据模型与数据库类型关系 熟悉数据库系统组成及其各部分作用【本节学习目标】一、什么是数据库?数据库是一种依照特定数据模型组织、存储和管理数据的文件集合。这些文件一般存放在外部存储器中,以便长久保存数据,并可快速访问。 容器文本图表音视频其它数据数据库数据库与普通数据文件的主要区别: 数据库可以支持不同应用对数据共享访问,普通数据文件难以支持。 数据库可实现复杂的数据管理,普通数据文件难以实现。 数据库可独立应用程序,普通数据文件与应用程序紧耦合。 数据库的操作访问与控制管理由数据库管理系统软件实现;普通数据文件的操作
2、访问与控制管理,都必须由应用程序实现。xxx数据库xxx.mdfxxx.ldf数据文件日志文件例 某软件厂商的数据库文件组成如下图所示二、什么是数据模型?1)数据结构: 用于描述事物对象的静态特征,包括事物对象的数据组成、数据类型、数据性质等。2)数据操作:用于描述事物对象的动态特征,包括数据的插入、修改、删除和查询等访问操作。3)数据约束:用于描述数据结构中数据之间的语义联系、数据之间的制约和依存关系,以及数据动态变化的规则等。数据模型数据约束数据操作数据结构数据模型是指描述事物对象的数据结构组成、数据语义联系、数据约束的抽象结构及其说明。三、数据库使用的数据模型 层次数据模型 网状数据模型
3、 关系数据模型 其它数据模型(如对象数据模型、键值对数据模型、列式数据模型、文档数据模型、图形数据模型等)1. 层次数据模型层次数据模型思想:采用“树”结构来组织、存储和管理数据。“高校教务系统”层次数据模型2. 网状数据模型网状数据模型思想:采用“网状图”结构组织、存储和管理数据。“高校教务系统”网状数据模型3. 关系数据模型关系数据模型思想:采用“二维表”结构组织、存储和管理数据,并以关联列实现表之间的联系。“课程目录系统”关系数据模型4. 关系数据模型优点与局限关系数据模型局限: 只用于结构化数据的组织与存储管理 支持的数据类型较简单 难以支持互联网广泛应用的非结构化数据和复杂数据管理关
4、系数据模型优点: 数据结构简单、操作灵活 支持关系与集合运算操作 支持广泛使用的SQL数据库操作语言标准 拥有众多的软件厂商产品与用户四、数据库系统数据库系统由用户、数据库应用程序、数据库管理系统和数据库四个部分组成。数据库系统(Database Systems)是一类基于数据库进行数据管理与信息服务的软件系统。1.数据库用户数据库用户(Users)是指数据库系统的使用人员。典型的数据库用户2.数据库应用程序数据库应用程序是一种在DBMS支持下对数据库中数据进行访问处理的应用程序。数据库应用程序基本功能: 通过窗口输入框采集用户输入数据 通过接口连接访问数据库 执行用户数据查询 通过表单列表输
5、出结果数据 。 数据库管理系统(Database Manage System,DBMS )是一种专门用来创建数据库、管理数据库、维护数据库,并提供外部对数据库进行访问的系统软件。3.数据库管理系统数据库管理系统一般具有如下基本功能: 创建数据库、数据库表以及其它对象 读写、修改、删除数据库表中数据 维护数据库结构 执行数据访问规则 提供数据库并发访问控制和安全控制 执行数据库备份和恢复 。 4.数据库数据库(Database)是一种依照特定数据模型组织、存储和管理数据的文件集合。系号系名电话学号姓名性别所属系课号课名关系数据库表表表关联用户数据(用户表)元数据(系统表) 索引数据(系统表)其它
6、数据(系统表)关系数据库的数据内容在关系数据库中,除了存储和管理应用的用户数据外,还需要存储与管理数据库本身的元数据、索引数据、运行数据等系统数据。 五、关系数据库中数据内容关系数据库用户表:存储用户的应用数据系统表:存储数据库系统自身数据视图:通过虚拟表实现数据查询处理索引:通过目录数据结构支持快速的数据查询约束:对关系表及其数据施加规则存储过程:在数据库内部实现特定功能程序的数据处理触发器:在数据库内部实现数据操作事件触发自动执行的过程程序六、关系数据库的对象组织某厂商关系数据库的对象组织本节学习结束!1.2 数据库技术发展了解数据库技术发展阶段了解数据库领域技术了解数据库技术发展趋势【本
7、节学习目标】一、数据管理技术发展阶段1.人工管理阶段(20世纪40年代中期-50年代中期) 应用需求: 科学计算 硬件背景: 纸带打孔输入/输出 软件背景: 没有操作系统 数据管理: 人工管理人工数据管理特点: 程序员组织与管理数据 应用程序依赖数据集 应用之间无数据共享、数据冗余度大 数据集无结构2.文件系统管理阶段(20世纪50年代末-60年代中) 应用需求:科学计算、信息管理 硬件背景:磁鼓、磁带、磁盘 软件背景:操作系统、文件系统 数据管理: 文件方式组织数据文件系统数据管理特点: 由文件组织与存储数据数据文件的数据记录具有简单的字段结构,但文件整体无结构应用程序依赖于数据文件,需自己
8、维护数据文件数据独立性差,难以实现应用程序之间的数据共享访问3.数据库系统管理阶段(20世纪60年代末-现在) 应用背景:大规模信息管理 硬件背景:大容量磁盘、磁盘阵列 软件背景:数据库管理系统(DBMS) 数据管理: 数据库管理系统组织、存储及访问数据数据库系统数据管理特点:数据集结构化,易于查询与统计处理不同应用程序可以实现数据共享访问数据独立性高,应用可扩展数据由DBMS统一管理和操作访问二、数据库技术发展经历时代1.第一代数据库技术20世纪60年代末出现的层次模型数据库技术和网状模型数据库技术。2.第二代数据库技术20世纪70年代出现的关系模型数据库技术。3.第三代数据库技术20世纪9
9、0年代出现的面向对象数据库技术和对象-关系数据模型数据库技术。4.第四代数据库技术本世纪初期出现的半结构化数据库技术,以及当今面向互联网应用的非结构化数据库技术、大规模分布式数据库技术。三、数据库技术领域四、数据库技术发展趋势 数据库规模朝两级发展,大型数据库系统越来越大,小型数据库系统越来越小。 从数据库行数据访问模式,到列数据访问模式。 从结构化数据库,到半结构化XML数据库、非结构化数据库。 从操作型数据库系统,到数据仓库、商业智能数据分析、大数据处理。 从通用数据库,到实时数据库、多媒体数据库、空间数据库、分布式数据库、并行数据库等专业领域数据库。本节学习结束!1.3 数据库应用系统了
10、解数据库应用系统类型理解数据库应用系统结构理解数据库应用系统生命周期【本节学习目标】一、数据库应用系统类型1. 业务处理系统业务处理系统(Transaction Process System, TPS)是运用数据库应用程序对机构业务活动(如订购、销售、支付、出货、核算等)信息进行记录、计算、检索、汇总、统计等数据处理,为机构操作层面提供基本业务服务,提高业务处理效率的信息系统。商业终端销售系统航空机票订票系统酒店系统2.管理信息系统管理信息系统(Manage Information System,MIS)是一种以机构职能管理为主导,利用计算机软硬件、网络通信、数据库等IT技术,实现机构职能整体
11、信息化管理,以达到规范化管理和提高机构工作效率,并支持机构职能服务的信息系统。 人力资源管理信息系统 办公管理信息系统 CRM管理信息系统 ERP管理信息系统3.决策支持系统决策支持系统(Decision Support System)是以管理科学、运筹学、控制论和行为科学为基础,以计算机技术、数据库技术、人工智能技术为手段,针对特定领域问题解决,为管理者提供辅助决策服务与方案的信息系统。 电信营销大数据决策支持系统 证券分析与辅助决策信息系统 法定传染病疫情预测系统 基于大数据的地震救灾决策支持系统二、数据库系统应用结构1.单机用户结构特点: 在单机用户结构系统中,整个数据库应用系统都装在一
12、台计算机上,由一个用户进行访问操作,数据不能共享,数据冗余度大。 2. 集中式结构 特点: 数据库系统的应用程序、DBMS、数据,都部署在同一服务器上运行,多个用户使用自己的计算机终端网络连接服务器,并可实现共享访问数据库。优缺点: 结构简单,易于维护,但是当终端用户增加到一定数量后,服务器及网络将成为数据存取访问的瓶颈,使系统的性能大大地降低。3. 客户/服务器结构 特点:数据库应用系统的数据集中在数据库服务器管理、应用分布客户机处理。客户端应用程序通过网络并发访问数据库服务器中的数据库。优缺点:在客户/服务器结构系统中,客户机程序与数据库服务器分工进行数据处理,提高了系统的负载分担能力,但
13、仍会因大量客户端并发访问数据库服务器,导致系统性能瓶颈。4. 分布式结构 特点:分布式结构的数据库系统既实现数据分布,又实现处理分布。分布式数据库系统的各服务器结点数据库在逻辑上是一个整体,但物理分布在计算机网络的不同服务器结点上运行。每个数据库服务器可通过网络既支持多个本地客户机访问,也支持远程客户机访问。网络中的每一个数据库服务器都可以独立地存取与处理数据,并执行全局应用。 优缺点:分布式结构数据库系统适合跨地区的大型机构及企业等组织对数据库应用的需求,其处理性能强,但数据库的分布处理与维护有一定的开销与技术难度。三、数据库应用系统生命周期1. 需求分析系统分析人员与用户交流,利用软件工程
14、方法获取系统数据需求信息,并采用需求模型定义系统数据组成,及其数据字典。2. 系统设计系统设计人员根据系统功能和性能需求,对系统数据库进行设计,包括系统概念数据模型、系统逻辑数据模型和系统物理数据模型设计。3. 系统实现按照系统设计方案进行数据库创建与应用编程实现,主要包括DBMS安装部署、数据库创建、数据对象创建、应用编程实现等方面的工作。4. 系统测试系统测试人员将测试数据上载到数据库中,对数据库对象进行测试操作访问,实现数据库功能和性能测试。5. 系统运行与维护系统运维人员在信息系统投入运行过程中,对数据库系统进行定期维护和优化,以保证数据库系统正常地、高效地运行。本节学习结束!1.4
15、典型数据库管理系统了解数据库管理系统类型了解典型数据库管理系统基本特性【本节学习目标】 集中式DBMS数据库集中部署在单一物理机器中,如Access 分布式DBMS数据库可分布在不同位置物理机器,如Oracle Database3.按系统部署分类 单用户DBMS仅支持单用户访问,如miniSQL 多用户DBMS可支持多用户并行访问,如MySQL2.按用户数分类 通用DBMS支持公共领域数据库应用,如SQL Server 专用领域DBMS支持专用领域数据库应用,如嵌入式领域的SQLite1.按用途分类一、数据库管理系统类型 桌面级DBMS适用于微小型的信息服务应用,如Access、SQLite等
16、 企业级DBMS适用于中大型的企业级应用,如DB2、ORACLE Database、Sybase ASE等4.按使用场景分类 产品DBMS数据库厂商拥有版权的数据库软件,如SQL Server、Oracle Database等 开源DBMS开源组织提供的数据库软件,如MySQL、PostgreSQL等5.按软件版权分类1.桌面数据库DBMS系统桌面数据库DBMS系统主要应用在小规模数据处理、单用户使用的场景。该类DBMS系统软件功能简单、软件体量小、处理能力弱。通常仅支持单一语言的应用程序开发。二、桌面DBMS系统与企业级DBMS系统应用比较2.企业级数据库DBMS系统企业级数据库DBMS系统
17、主要运用在大规模数据处理、多用户使用的场景;该类DBMS系统软件功能完善、软件体量大、处理能力强;支持多种不同语言的应用程序开发。数百个数据库表上百万行数据/表数千计并发用户 ACCESS微软公司推出的桌面数据库管理系统 SQL SERVER微软公司推出的商用数据库管理系统 Oracle Database甲骨文公司推出的企业级数据库管理系统 IBM DB2IBM公司推出的企业级数据库管理系统 Sybase ASESybase公司推出的企业级数据库管理系统 MySql应用广泛的开源关系数据库管理系统 PostgreSQL技术领先的开源对象-关系数据库管理系统 Sybase SQL Anywher
18、eSybase推出的移动计算数据库管理系统 SQLite开源的轻量级嵌入式数据库管理系统。三、典型数据库管理系统本节学习结束!1.5 PostgreSQL对象-关系数据库系统软件了解PostgreSQL数据库软件基本特性了解PostgreSQL数据库软件程序组成了解PostgreSQL数据库开发工具了解PostgreSQL数据库对象【本节学习目标】一、从哪里可以获得PostgreSQL软件安装包?通常从PostgreSQL官方网站(/download/)下载软件安装包。二、PostgreSQL数据库系统软件程序组成PostgreSQL数据库管理系统软件由客户端功能程序和服务器端功能程序组成。它
19、们采用客户/服务器架构方式进行通信。三、PostgreSQL数据库软件客户端程序clusterdb - 建立PostgreSQL数据库集群createdb - 创建一个新 PostgreSQL 数据库createlang - 安装一个PostgreSQL过程语言createuser - 创建一个新的PostgreSQL用户帐户dropdb - 删除一个 PostgreSQL 数据库droplang - 删除一个PostgreSQL过程语言dropuser - 删除一个PostgreSQL用户账户ecpg - 嵌入的 SQL C 预处理器pg_basebackup - 做一个PostgreSQL
20、 集群的基础备份pg_config - 检索已安装的PostgreSQL版本信息pg_dump - 将一个PostgreSQL数据库转储到一个脚本文件或者其它归档文件中pg_dumpall - 将一个PostgreSQL数据库集群转储到一个脚本文件中.四、PostgreSQL数据库软件的服务器程序initdb 初始化PostgreSQL数据库pg_controldata - 显示一个PostgreSQL数据库集群的控制信息pg_ctl - 启动、停止或者控制PostgreSQL服务器pg_resetxlog - 重置一个数据库集群的预写日志以及其它控制内容postgres - PostgreS
21、QL 数据库服务器进程postmaster - PostgreSQL 守护进程.五、PostgreSQL数据库的常用管理工具1.psql命令行管理工具pgAdmin 4管理工具2.pgAdmin图形界面管理工具六、PostgreSQL数据库主要对象 模式(schema)对象 表(table)对象 视图(view)对象 序列(sequence)对象 函数(function)对象 触发器(trigger)对象 。本章学习结束!2.1 关系及其相关概念关系、实体了解关系模型提出理解“实体”与“关系”概念理解关系特征理解“关系”的数学定义【本节学习目标】 1970年,IBM的研究员E.F.Codd博士
22、在刊物Communication of the ACM上发表了一篇关于数据库模型的学术论文(篇名为“A Relational Model of Data for Large Shared Data Banks”),首次提出了关系模型概念及其原理方法。 后来Codd又陆续发表多篇文章,论述了范式理论和衡量关系模型的12条标准,进一步奠定了关系数据库的数学理论基础。 一、关系模型提出关系模型以关系代数理论为数学基础,将数据操作抽象为关系处理,其关系表结构简单,便于理解和访问。关系模型在当今几乎所有商业数据库中得到广泛应用。实体(entity)是指包含有数据特征的事物对象在概念模型世界中的抽象名称。
23、实体名称实体属性“雇员”实体例 在企业信息系统中,人员信息可以使用“雇员(EMPLOYEE)”实体名称表示,并用实体模型符号可视化表示如下。二、实体、关系的概念1. 实体在关系模型中,使用“关系”来存储“实体”中的数据。关系(relation)是指具有关系特征、用于存放实体数据的二维表。关系也常被称为关系表。“EMPLOYEE”关系表2. 关系3. 关系特征 表中每行存储实体的一个实例数据 表中每列包含实体的一项属性数据 表中单元格只能存储单个值 不允许有重复的行 不允许有重复的列 列顺序可任意 行顺序可任意行或元组列或属性表单元有多个条目值问题:下面包含数据的二维表是关系表吗?非关系表Ema
24、il列中的条目类型不一致问题:下面包含数据的二维表是关系表吗?非关系表问题:下面包含数据的3个二维表是关系表吗?关系表三、关系的数学定义定义: 关系是指在集合域 D1、Dn 上运算笛卡儿积的有意义子集,其数学描述为 R D1 Dn。说明:关系R只是该笛卡儿积的有意义子集,即关系R的元组数=笛卡儿积的元组数。例 若一个“学生”实体有(学号,姓名,性别)三个属性。我们可以使用D1、D2、D3域来定义它们,并假定它们的域值范围如下:D1=2017010001,2017010002,2017010003D2=刘京,夏岷,周小亮D3=男,女在本例中,D1,D2,D3的笛卡儿积为:D1D2D3=(2017
25、010001,刘京,男),(2017010001,刘京,女),(2017010001,夏岷,男),(2017010001,夏岷,女), ,(2017010003,周小亮,女)。共计18个元组。在上面描述“学生”实体的笛卡尔积元组集合中,只有如下元组构成的子集,才能成为“学生”关系的数据,如下表所示。“学生”关系本节学习结束!2.1-2 关系及其相关概念关系键、关系模式理解“键”、“复合键”、“候选键”概念理解“主键”、“代理键”、“外键”概念掌握关系模式语句表示方法【本节学习目标】一、关系的键定义在关系中,可以用来唯一标识元组的属性列,称为键(Key),其它属性列都为非键列。键非键1.复合键复
26、合键(Compound Key)是指关系中用来唯一标识元组的多列作为键。(学号,课程编号)复合键学号课程编号成绩20100201001902010020300188201002060019020100209001872010020100290201002030028020100201003942.候选键候选键(Candidate Key)关系中可能有多个列均适合作为键,将其中每个都称为候选键。候选键候选键主键(Primary key)是关系表中最有代表性的一个候选键,每个关系表中只能定义一个主键。3.主键主键主键作用: 唯一标识关系表的每行(元组) 与关联表的外键建立联系,实现关系表之间连接
27、数据库文件使用主键值来组织关系表的数据存储 数据库使用主键索引快速检索数据主键定义操作实例:在PostgreSQL 数据库中定义Employee关系表主键设置主键设置非空4.代理键代理键采用DBMS自动生成的数字序列作为关系表的主键。代理键有什么用途?由DBMS自动生成的数字序列作为主键,可替代复合主键,以便获得更高性能的数据访问操作处理。 实例:在房产信息Property 关系表中定义代理键代理键二、关系模式语句表示RELATION_NAME (Colunm01, Colunm02, ,LastColunm) 关系名称属性名关系模式语句中主键表示方法:关系名(主键属性,属性2,属性x)EMP
28、LOYEE (EmployeeNumber,FirstNmae,LastName,Department,Email,Phone) 该关系模式的语句表示为:EMPLOYEE关系例:EMPLOYEE关系表的关系模式语句表示本节学习结束!2.2 关系模型原理数据结构、数据操作理解关系模型组成原理掌握关系模型的数据操作方法【本节学习目标】一、关系模型及其组成关系模型(Relation Model)是一种基于二维表结构存储数据实体及实体间联系的数据模型。1. 数据结构集合运算操作包括选择(select)、投影(project)、连接(join)、交(intersection)、并(union)、差(di
29、fference)等。2. 数据操作专门针对元组的关系操作包括数据行插入(Insert)、 修改(Update)、删除(Delete)操作。关系数据模型集合运算操作专门关系操作在关系模型中,数据关系约束是指关系表中实体数据完整性、关联表之间数据一致性等要求,一般由业务需求来确定。3. 数据关系约束在关系模型中,可定义关系表的数据约束如下: 属性列取值类型 属性列取值范围 属性列取值是否唯一 属性列是否允许空值 关联表的参照完整性约束关系数据模型二、关系模型数据操作R关系、S关系的数据关系模型数据操作采用基于关系代数的数据操作,包括传统的集合运算操作和专门的关系运算操作。1.关系“并运算”操作R
30、S=t|tRtS关系并运算的结果集是由属于R或属于S的所有元组组成。关系并运算的前提:关系R与关系S需有相同属性组成。2.关系“差运算-”操作RS=t|tRtS关系差运算-的结果集是由属于R,而不属于S的所有元组组成。关系差运算的前提:关系R与关系S需有相同属性组成。3.关系“交运算”操作RS=t|tRtS关系交运算的结果集是由既属于R又属于S的所有元组组成。关系差运算的前提:关系R与关系S需有相同属性组成。4.关系“笛卡尔积x”操作RS=(d1,d2)|d1 R, d2 S笛卡儿积运算的结果集是由所有属于R的元组与所有属于S的元组进行组合而成。练习:关系R与关系S的数据见下表所示,请分别给出
31、RS、RS、RS运算的结果数据RS运算RS运算RS运算本节学习结束!2.2 关系模型原理完整性约束理解关系模型完整性约束理解实体完整性理解参照完整性理解用户自定义完整性【本节学习目标】一、关系模型完整性关系模型完整性是指在关系数据模型中对关系实施的完整性约束。完整性约束作用: 消除关系表的元组重复存储 保持关联表的数据一致性 实现业务数据规则关系模型完整性约束组成: 实体完整性约束 参照完整性约束 用户自定义完整性约束二、实体完整性实体完整性是指在关系表中实施的主键取值约束,以保证关系表中的每个元组可以被唯一标识。实体完整性约束规则:每个关系表中的主键属性列都不允许为空值(NULL),否则就不
32、可能标识实体。现实世界中的实体是靠主键来标识,主键取值应该唯一,并区分关系表中的每个元组。例 选课注册关系表(Register)的实体完整性定义Teacher关系表的实体完整性约束定义设置主键设置非空练习:在表2-7、表2-8、表2-9所示的成绩关系表中,请判断哪些表符合实体完整性约束、哪些表不符合实体完整性约束?参照完整性是指关系表之间需要遵守的数据约束,以保证关系之间关联列的数据一致性。参照完整性约束规则:若关系R中的外键F与关系S中的主键K相关联,则R中外键F值必须与S中主键K值一致。外键(Foreign key)在关联的两个关系中,它们具有一个或多个相同属性。若关联列在第一个关系中作为
33、主键,则在第二个关系中作为外键。三、参照完整性主键外键参照完整性是指外键取值必须与现有主键值对应。例 在下面的出版社、书名关系表中,它们都有相同的“出版社编号”属性列。这两个表之间的参照完整性约束是指“书名”关系表的“出版社编号”列值必须与“出版社”关系表中的“出版社编号”值匹配,即需要维持它们之间数据一致性。用户自定义完整性是指用户根据具体业务对数据处理规则要求所定义的数据约束。用户可以定义如下类型的完整性约束:定义列的数据类型与取值范围定义列的缺省值定义列是否允许取空值定义列取值唯一性定义列之间的数据依赖性四、用户自定义完整性例 在下面表2-10所示的成绩关系表中,业务要求分数字段Scor
34、e的取值范围为0-100或为空值。本节学习结束!2.3 PostgreSQL数据库关系操作实践掌握创建PostgreSQL关系数据库方法掌握在PostgreSQL数据库中创建关系表方法掌握在PostgreSQL数据库中定义关系表的主键、代理键与外键方法掌握在PostgreSQL数据库中定义关系表的实体完整性、参照完整性、用户自定义完整性方法【本节学习目标】本节将围绕“选课管理系统”项目案例,在PostgreSQL数据库中创建关系表及其完整性约束,并理解本章所学习的关系模型基本概念和关系操作原理。课程表(COURSE)教师表(TEACHER)开课计划表(PLAN)学生表(STUDENT)选课注册
35、表(REGISTER)学院信息表(COLLEGE)一、项目案例选课管理系统数据库关系表实践选课管理数据库(CurriculaDB)课程表(COURSE)字段名称字段编码数据类型字段大小必填字段是否为键课程编号CourseID文本4是主键课程名CourseName文本20是否课程类别CourseType文本10否否学分CourseCredit数字短整型否否学时CoursePeriod数字短整型否否考核方式TestMethod文本10否否教师表(TEACHER)字段名称字段编码数据类型字段大小必填字段是否为键教师编号TeacherID文本4是主键姓名TeacherName文本10是否性别Teach
36、erGender文本2否否职称TeacherTitle文本6否否所属学院CollegeID文本3否外键联系电话TeacherPhone文本11否否开课计划表(PLAN)字段名称字段编码数据类型字段大小必填字段是否为键开课编号CoursePlanID自动编号长整型是代理键课程编号CourseID文本4是外键教师编号TeacherID文本4是外键地点CourseRoom文本30否否时间CourseTime文本30否否备注Note文本50否否学生表(STUDENT)字段名称字段编码数据类型字段大小必填字段是否为键学号StudentID文本13是主键姓名StudentName文本10是否性别Stude
37、ntGender文本2否否出生日期BirthDay日期短日期否否专业Major文本30否否手机号StudentPhone文本11否否选课注册表(REGISTER)字段名称字段编码数据类型字段大小必填字段是否为键注册编号CourseRegID自动编号长整型是代理键开课编号CoursePlanID数字长整型是外键学号StudentID文本13是外键备注Note文本30否否学院信息表(COLLEGE)字段名称字段编码数据类型字段大小必填字段是否为键学院编号CollegeID文本3是主键学院名称CollegeName文本40是否学院介绍CollegeIntro文本200否否学院电话CollegeTel
38、文本30否否二、使用数据库管理工具pgAdmin 4创建PostgreSQL数据库CurriculaDB数据库创建三、使用数据库管理工具创建关系表COLLEGECollge表创建COLLEGE关系表创建四、使用数据库管理工具创建的数据库表对象选课管理数据库(CurriculaDB)的表对象CurriculaDB数据库的表对象五、使用数据库管理工具定义关系表中的代理键选课管理数据库(CurriculaDB)的表对象REGISTER关系表的代理键定义六、使用数据库管理工具定义关系表的实体完整性学生表(CurriculaDB)的实体完整性定义COURSE关系表实体完整性定义七、使用数据库管理工具定义
39、关系表的外键及其参照完整性教师表(Teacher)的外键参照学院表(College)的主键TEACHER关系表与COLLEGE关系表的参照完整性定义八、使用数据库管理工具创建关系表的用户自定义完整性约束自定义课程表(Teacher)的学分列(CourseCredit)取值范围COURSE关系表自定义完整性约束创建本章学习结束!3.1 SQL语言概述了解SQL语言是什么了解SQL语言标准了解SQL语言的应用及特点理解SQL语言对关系数据库的操作原理了解SQL语言的语句类型了解SQL语言支持的数据类型【本节学习目标】一、什么是SQL?SQL( Structured Query Language,结
40、构化查询语言 )是一种对关系数据库进行访问的数据操作语言。二、SQL标准发展历史20世纪70年代由IBM公司研制的SEQUEL语言演变出SQL语言1979年ORACLE公司首先推出商用SQL1986 美国国家标准局批准了SQL作为关系型数据库语言的ANSI标准。1987年国际标准化组织(ISO)将其采纳为国际标准SQL86。ISO先后推出国际标准SQL-89、SQL-92、SQL:1999、SQL:2003、SQL:2006、SQL:2008、SQL:2011等目前最新版本为SQL:2016三、SQL应用情况主流的关系型数据库管理系统均支持SQL标准语言实现数据库操作OracleSybaseD
41、B2Microsoft SQL ServerMySql。 其中一些厂商数据库管理系统对SQL语句进行了功能扩展,如SybaseASE、 Microsoft SQL Server将SQL操作语言扩展为Transaction-SQL语言;Oracle Database将SQL操作语言扩展为PL/SQL语言。四、SQL语言特点一体化使用方式灵活非过程化语言语句简单五、SQL对关系数据库的操作原理SQL主要操作功能:数据库对象创建、修改、删除数据库表的数据插入、修改、删除、查询、统计存储过程、触发器、函数等程序执行数据库权限、角色、用户等管理 数据库DBMS(执行SQL)数据库应用程序返回结果提交SQ
42、LI/O数据1. 数据定义语言数据定义语言(Data Definition Language,DDL)是SQL语言中用于创建、修改或删除数据库对象的语句。CREATE DATABASE - 创建新数据库DROP DATABASE 删除数据库ALTER DATABASE - 修改数据库属性 CREATE TABLE - 创建新表 ALTER TABLE 修改数据库表结构DROP TABLE - 删除表CREATE INDEX - 创建索引DROP INDEX - 删除索引 六、SQL语言语句类型2. 数据操纵语言数据操纵语言(Data Manipulation Language,DML)是SQL
43、语言中用于增添、修改、删除数据的语句。INSERT - 向数据库表中插入数据 UPDATE - 更新数据库表中的数据DELETE - 从数据库表中删除数据 3. 数据查询语言数据查询语言(Data Query Language,DQL)是SQL语言中用于对数据库进行数据查询的语句。4. 数据控制语言数据控制语言(Data Control Language,DCL)是用于对数据库对象访问权进行控制的SQL语句。GRANT 授予用户对数据库对象的权限DENY 拒绝授予用户对数据库对象的权限REVOKE 撤消用户对数据库对象的权限5. 事务处理语言事务处理语言(Transaction Process
44、 Language,TPL)是SQL语言中用于数据库内部事务处理的语句。BEGIN TRANSACTION 开始事务COMMIT 提交事务ROLLBACK 回滚事务6. 游标控制语言游标控制语言(Cursor Control Language,CCL)是SQL语言中用于数据库游标操作的语句。DECLARE CURSOR 定义游标FETCH INTO 提交游标数据CLOSE CURSOR 关闭游标七、SQL语言的数据类型1. SQL语言基本数据类型字符:CHAR、VARCHAR、TEXT整数:SMALLINT、INTEGER浮点数:NUMBER(n,d)、FLOAT(n,d)日期:DATE、DA
45、TETIME货币:MONEYPostgreSQL数据库支持的部分数据类型2. 不同数据库所支持数据类型SQL Server数据库支持的部分数据类型MySQL 数据库支持的部分数据类型本节学习结束!3.2-1 数据定义SQL语句 数据库创建、修改、删除掌握SQL语言的数据库创建语句掌握SQL语言的数据库修改语句掌握SQL语言的数据库删除语句【本节学习目标】一、数据库创建SQL语句1. 语句基本格式例 执行SQL语句创建一个选课管理数据库CourseDB。CREATE DATABASE CourseDB;CREATE DATABASE ;在PostgreSQL服务器中,执行SQL语句创建数据库Co
46、urseDB。运行按钮SQL语句结果消息数据库2.语句执行二、数据库修改SQL语句1.语句基本格式例 将选课管理数据库CourseDB名称修改为 CourseManageDBALTER DATABASE CourseDB RENAME TO CourseManageDB;ALTER DATABASE ;在PostgreSQL服务器中,执行SQL语句修改数据库CourseDB名称。运行按钮SQL语句结果消息数据库2.语句执行三、数据库删除SQL语句1. 语句基本格式例 删除前面创建的选课管理数据库CourseManageDBDROP DATABASE CourseManageDB;DROP DA
47、TABASE ;在PostgreSQL服务器中,执行SQL语句删除数据库CourseManageDB。运行按钮SQL语句结果消息数据库2.语句执行本节学习结束!3.2-2 数据定义SQL语句 数据库表创建、修改、删除掌握SQL语言的数据库表创建语句掌握SQL语言的数据库表修改语句掌握SQL语言的数据库表删除语句【本节学习目标】一、数据库表创建SQL语句1.语句基本格式CREATE TABLE ( 列完整性约束, 列完整性约束, 列完整性约束, );2. 列完整性约束列完整性约束关键词 PRIMARY KEY主键NOT NULL非空值NULL空值UNIQUE值唯一CHECK有效性检查DEFAUL
48、T缺省值字段名称字段编码数据类型字段大小必填字段是否为键学号StudentID文本13是主键姓名StudentName文本10是否性别StudentGender文本2否否出生日期BirthDay日期短日期否否专业Major文本30否否手机号StudentPhone文本11否否例 选课管理数据库的学生表Student设计需求3. SQL语句应用CREATE TABLE Student( StudentID char(13) PRIMARY KEY, StudentName varchar(10) NOT NULL, StudentGender char(2) NULL, BirthDay dat
49、e NULL, Major varchar(30) NULL, StudentPhone char(11) NULL );创建学生表Student的SQL语句在PostgreSQL服务器中,执行SQL语句创建数据库关系表Student。运行按钮SQL语句结果消息数据库表4.SQL语句执行在关系表创建SQL语句中,除了使用主键约束、是否空值约束外。有时还会使用如下约束。5.其它的列完整性约束应用UNIQUE值唯一CHECK有效性检查DEFAULT缺省值字段名称字段编码数据类型字段大小必填字段是否为键备注课程编号CourseID文本4是主键课程名CourseName文本20是否取值唯一课程类别Co
50、urseType文本10否否“基础课”、“专业课”、“选修课”学分CourseCredit数字短整型否否学时CoursePeriod数字短整型否否考核方式TestMethod文本10否否缺省值“闭卷考试”例 选课管理系统数据库的课程信息表Course设计需求创建课程信息表Course的SQL语句CREATE TABLE Course( CourseID char(4) PRIMARY Key, CourseName varchar(20) NOT NULL UNIQUE, CourseType varchar(10) NULL CHECK(CourseType IN(基础课,专业课,选修课),
51、 CourseCredit smallint NULL, CoursePeriod smallint NULL, TestMethod char(4) NOT NULL DEFAULT 闭卷考试);在PostgreSQL服务器中,执行SQL语句创建数据库关系表Course。运行按钮SQL语句结果消息数据库表6.表约束定义主键使用列约束关键词PRIMARY KEY定义表的主键列只能定义单列主键,若要定义由多个列构成的复合主键,则需要使用表约束方式来定义。CREATE TABLE ( 列完整性约束, 列完整性约束, 列完整性约束, CONSTRAINT PRIMARY Key(主键列) );例 选
52、课管理系统数据库的开课计划表Plan设计需求字段名称字段编码数据类型字段大小必填字段是否为键课程编号CourseID文本4是主键教师编号TeacherID文本4是主键地点CourseRoom文本30否否时间CourseTime文本30否否备注Note文本50否否CREATE TABLE Plan( CourseID char(4) NOT NULL, TeacherID char(4) NOT NULL, CourseRoom varchar(30), CourseTime varchar(30), Note varchar(50), CONSTRAINTCoursePlan_PKPRIMAR
53、Y Key(CourseID,TeacherID);创建开课计划表Plan的SQL语句在PostgreSQL中,执行SQL语句创建数据库关系表Plan。运行按钮SQL语句结果消息数据库表使用表约束定义主键的优点:便于定义复合主键可命名主键约束便于定义代理键7.表约束定义代理键在一些关系表中,为了方便数据处理,可以使用代理键去替代复合主键。在SQL语句中,关系表的代理键采用表约束方式来定义。CREATE TABLE ( NOT NULL, 列完整性约束, 列完整性约束, CONSTRAINT PRIMARY Key(代理键列名) );例 选课管理系统数据库的开课计划表Plan设计需求字段名称字段
54、编码数据类型字段大小必填字段是否为键开课编号CoursePlanID自动编号长整型是代理键课程编号CourseID文本4是否教师编号TeacherID文本4是否地点CourseRoom文本30否否时间CourseTime文本30否否备注Note文本50否否创建开课计划表Plan的SQL语句CREATE TABLE Plan( CoursePlanIDserialNOT NULL, CourseID char(4) NOT NULL, TeacherID char(4) NOT NULL, CourseRoom varchar(30), CourseTime varchar(30), Note
55、varchar(50), CONSTRAINTCoursePlan_PKPRIMARY Key(CoursePlanID);在PostgreSQL中,执行SQL语句创建数据库关系表Plan。运行按钮SQL语句结果消息数据库表8.表约束定义外键在数据库中,一些关系表之间存在关联。在一个表中作为主键的列,在另外的关联表中则作为外键。CREATE TABLE ( 列完整性约束, 列完整性约束, 列完整性约束, CONSTRAINT FOREIGN Key(外键列) );例 选课管理系统数据库的注册表Register设计需求字段名称字段编码数据类型字段大小必填字段是否为键注册编号CourseRegID
56、自动编号长整型是代理键开课编号CoursePlanID数字长整型是外键学号StudentID文本13是外键备注Note文本30否否创建注册表Register的SQL语句CREATE TABLE Register( CourseRegID serialNOT NULL, CoursePlanID Int NOT NULL, StudentID char(13), Note varchar(30), CONSTRAINTCourseRegID_PKPRIMARY Key(CourseRegID), CONSTRAINTCoursePlanID_FKFOREIGN Key(CoursePlanID)
57、REFERENCES Plan(CoursePlanID) ON DELETE CASCADE, CONSTRAINTStudentID_FKFOREIGN KEY(StudentID)REFERENCES Student(StudentID) ON DELETE CASCADE);在PostgreSQL中,执行SQL语句创建数据库关系表Register。运行按钮SQL语句结果消息数据库表ALTER TABLE ;二、修改表结构SQL语句1.语句基本格式2.主要语句类型1)ADD修改方式,用于增加新列或列完整性约束ALTER TABLE ADD |完整性约束2)DROP修改方式,用于删除指定列
58、或列的完整性约束条件3)RENAME修改方式,用于修改表名称、列名称ALTER TABLE DROP COLUMN ;ALTER TABLE DROP CONSTRAINT;ALTER TABLE RENAME TO ;ALTER TABLE RENAME TO ;4)ALTER修改方式,用于修改列的数据类型ALTER TABLE ALTER COLUMN TYPE;3.表修改举例学生表Student原有结构及数据例 在学生表Student中,新增一个“email”列运行按钮SQL语句结果消息新增列学生表Student修改后结构及数据三、删除表结构SQL语句DROP TABLE ;注意: 该语
59、句将删除该表的所有数据及其结构1.语句基本格式2.表删除举例例 删除注册表Register表及其数据,可以使用如下语句。DROP TABLE Register;运行按钮SQL语句结果消息例 执行SQL语句删除注册表Register本节学习结束!3.2 数据定义SQL语句数据库索引创建、修改、删除掌握SQL语言的数据库索引创建语句掌握SQL语言的数据库索引修改语句掌握SQL语言的数据库索引删除语句【本节学习目标】一、什么是索引索引(Index)是一种按照关系表中指定列的取值顺序组织元组数据存储的数据结构,使用它可以加快表中数据的查询访问。二、索引作用及特点索引作用:支持对数据库表中数据快速查找,
60、其机理类似图书目录可以快速定位章节内容。索引优点: 提高数据检索速度 可快速连接关联表 减少分组和排序时间索引开销: 创建和维护索引都需要较大开销 索引会占用额外存储空间 数据操纵因维护索引带来系统性能开销三、索引创建SQL语句1.语句基本格式CREATE INDEX ON ;例 在学生信息表Student中,为出生日期Birthday列创建索引,以便支持按出生日期快速查询学生信息。CREATE INDEX Birthday_Idx ON STUDENT (Birthday);2.索引创建实例3.索引创建SQL执行运行按钮SQL语句结果消息新建索引四、索引修改SQL语句例如,索引名称修改语句格
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025数据中心空调安装工程分包合同
- 2025年小型挖机买卖合同范本
- 2025年土地整治项目合同
- 2025家具订购合同书模板
- 2025年光纤和特种光缆项目建议书
- 山体防汛施工方案
- 碎裂地板施工方案
- 标志板施工方案
- 商场橱窗施工方案
- 高温限电施工方案
- 儿童泌尿道感染(课堂PPT)
- 全国压力容器设计单位名录
- 特变电工-财务报表分析课件
- 人民医院人才队伍建设规划人才队伍建设五年规划
- 一年级语文下册课件-21 小壁虎借尾巴24-部编版(15张PPT)
- 第四课:印巴战争
- 患者随访率低原因分析以及对策
- 油田相关业务的税制及税率
- 计量认证实验室程序文件(全套)
- DGC型瓦斯含量直接测定装置使用说明书
- 普通座式焊接变位机工装设计全套图纸
评论
0/150
提交评论