数据库笔记

合集下载

Oracle数据库学习笔记_Oracle添加主键primarykey的四种方法

Oracle数据库学习笔记_Oracle添加主键primarykey的四种方法

Oracle数据库学习笔记_Oracle添加主键primarykey的四种⽅法创建主键oracle主键添加语句通常紧跟在建表语句之后,也可以直接嵌在列声明⾥创建,oracle创建主键时会⾃动在该列上创建索引。

常见⽅法⼤概有以下5种:⽅法⼀、使⽤add constraint ⽅法添加主键约束alter table 表名 add constraint 主键名 primary key (列名1,列名2,...)⽅法⼆、使⽤索引创建主键(和⽅法⼀没有区别,可以将⽅法⼀理解为省略了using index)alter table 表名 add constraint 主键名 primary key (列名1,列名2,...)using index [index_name];当省略using index后⾯的index_name时,创建主键的同时创建同名索引;当使⽤已有索引index_name创建主键时,注意索引列和主键列应该相同才能创建成功。

⽅法三、直接添加主键alter table 表名 add primary key (列名1,列名2,...) ;同样,创建主键的同时创建同名索引。

⽅法四、参数列内添加主键create table ALERT_RESULT_EVENT_C(data_date VARCHAR2(8) not null,object_id VARCHAR2(600) not null,event_id VARCHAR2(20) not null,ratio NUMBER(22,4),pairing_object_id VARCHAR2(128),index_value_1 VARCHAR2(128),index_value_2 VARCHAR2(128),constraint PK_ALERT_RESULT_EVENT_C primary key (DATA_DATE, OBJECT_ID, EVENT_ID));删除主键alter table 表名 drop primary key ;采⽤该语句删除主键时,同名索引也会被删掉。

数据库系统概论读书笔记

数据库系统概论读书笔记

⏹数据(Data)是数据库中存储的基本对象⏹数据的定义⏹描述事物的符号记录⏹数据的种类⏹文字、图形、图象、声音⏹数据的特点⏹数据与其语义是不可分的数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合⏹数据库的特征⏹数据按一定的数据模型组织、描述和储存⏹可为各种用户共享⏹冗余度较小⏹数据独立性较高⏹易扩展⏹数据库管理系统(Database Management System,简称DBMS)是位于用户与操作系统之间的一层数据管理软件。

⏹DBMS的用途⏹科学地组织和存储数据、高效地获取和维护数据DBMS的主要功能⏹数据库的运行管理保证数据的安全性、完整性、多用户对数据的并发使用发生故障后的系统恢复⏹数据库的建立和维护功能(实用程序)数据库数据批量装载数据库转储介质故障恢复数据库的重组织性能监视等数据库系统(Database System,简称DBS)是指在计算机系统中引入数据库后的系统构成。

⏹数据库系统的构成⏹由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。

⏹数据管理⏹对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。

⏹数据模型应满足三方面要求⏹能比较真实地模拟现实世界⏹容易为人所理解⏹便于在计算机上实现⏹数据模型分成两个不同的层次(1) 概念模型也称信息模型,它是按用户的观点来对数据和信息建模。

(2) 数据模型主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。

⏹客观对象的抽象过程---两步抽象⏹现实世界中的客观对象抽象为概念模型;⏹把概念模型转换为某一DBMS支持的数据模型。

⏹数据结构⏹对象类型的集合数据结构是对系统静态特性的描述⏹两类对象⏹与数据类型、内容、性质有关的对象⏹与数据之间联系有关的对象⏹数据操作⏹对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则⏹数据操作的类型⏹检索⏹更新(包括插入、删除、修改)⏹数据模型对操作的定义⏹操作的确切含义⏹操作符号⏹操作规则(如优先级)⏹实现操作的语言⏹数据操作是对系统动态特性的描述。

软考数据库系统工程师备考笔记

软考数据库系统工程师备考笔记

软考数据库系统工程师备考笔记哎,说到“软考数据库系统工程师”,咋感觉有点深不可测呢?像个大海,谁都怕掉进去。

其实吧,这个考试一点也不可怕,就跟做菜一样,掌握了基本的材料和调料,慢慢操作就能做出一桌好菜。

要知道,数据库这个东西说难不难,说简单也不简单,关键是你得用心去理解。

听我说,你要真想通过软考数据库系统工程师,得像泡茶一样细心。

你得泡,得闻,得看,得品,最后才能得到一个好结果。

别以为我说的是茶艺,实际也是数据库的学习之道。

有些人一看到“数据库”就头疼,觉得这是天书,什么索引、SQL、事务、范式,看得脑袋嗡嗡响,什么都不懂。

这不,刚接触数据库的人就像拿着锤子在搞电子产品,根本不懂怎么用。

这时候,你要做的,就是从最简单的地方开始,不要一下子就想吃掉整头牛。

数据库的基本概念其实并没有想象中的那么复杂。

比如说,表格就是一个二维的容器,存的就是数据。

数据里面的每一项都代表一个实体,比如一个学生、一辆车或者一笔交易。

你试想一下,数据库就像你家里的大衣柜,每个抽屉里都是不同的东西,不同的分类。

至于如何去查找和管理它们,那就是后面需要掌握的技巧啦。

学数据库,最怕的就是死记硬背,记住一些看似高大上的概念,结果到考试的时候完全摸不着头脑。

什么是“关系型数据库”啊?好像很复杂对吧?关系型数据库就是用表格来存数据,表与表之间是有联系的,像是朋友之间互相串门那样。

你想查找某个学生的信息,只需要通过学生的ID号去对应的表里找到,快得像闪电一样。

反正就是一个“关系”,有关系就能查到,没关系就查不着。

简单吧?咱们说说SQL,这个玩意儿是你跟数据库沟通的语言。

想想你拿着个遥控器对着电视喊“开机”,电视才会动,那SQL就像是你的遥控器,你通过它去让数据库做事情。

SQL其实也没有那么神秘,最基本的查询语句就像“SELECT * FROM 表名”这样的简单指令。

你一看这条语句,是不是瞬间明白了它的意思?“SELECT”就是选择,“FROM”是从哪个表里拿数据,后面的“*”代表所有的字段,简单吧,简直就是数据库版的点餐菜单,你想要啥就选啥。

泛微OA 数据库维护笔记(e-cology)

泛微OA 数据库维护笔记(e-cology)

泛微OA数据库维护笔记本文介绍泛微OA系统流程相关表结构,以及常用的查询、修改流程数据、导出流程数据的操作:这里主要介绍流程的数据存放结构及如果通过流程类型获取到流程的字段信息,流程的载体分为表单和单据两类,表单和单据的区别在于:所有使用表单的流程数据存放在同一个表中,而单据每个单据对应着一张独立的数据表1.表单一、对于表单而言流程的数据信息存放在三个数据表中Workflow_requestbase:该表存放了流程的基本信息:标题,创建人,创建时间,流程类型等等Workflow_form:该表存储了流程的具体信息通过REQUESTID字段和Workflow_requestbase表关联Workflow_formdetail:该表存放了流程的明细信息,同样通过REQUESTID字段和Workflow_requestbase表关联二、通过流程的类型如何获取该流程使用了Workflow_form和Workflow_formdetail表中哪些字段在Workflow_form和Workflow_formdetail表中存放了大量字段,所有使用表单的流程的字段都在这两个表中,如何获取每个流程使用了那些字段呢?A、找到流程的类型ID,假定为wfidB、找到流程用了哪个表单select formid from workflow_base whereid=wfid and isbill=’0’C、获得该表单用到了哪些主字段:select(select fieldlable from workflow_fieldlable whereworkflow_fieldlable.fieldid=workflow_formfield.fieldid and langurageid=7andworkflow_fieldlable.formid=workflow_formfield.formid)as name,(select fieldname from workflow_formdictwhere id=fieldid)from workflow_formfield whereformid=上面获取的FORMID and (isdetail is null orisdetail=’’)哪些明细字段:select(select fieldname fromworkflow_formdictdetail where id=fieldid)fromworkflow_formfield where formid=上面获取的FORMID andisdetail=’1’➢下面是查询出差申请流程“表单”数据的步骤:2.单据对于表单而言流程的数据信息存放在三个数据表中Workflow_requestbase:该表存放了流程的基本信息:标题,创建人,创建时间,流程类型等等Workflow_form:该表只存放Workflow_requestbase和单据表之间的关系信息各单据主表:该表存储了流程的具体信息通过REQUESTID字段和Workflow_requestbase表关联,如何获取该表呢:A、找到流程的类型ID,假定为wfidB、找到流程用了哪个单据select formid form workflow_basewhere id=wfid and isbill=’1’C、通过单据ID可以获取到该单据使用的字段Select * from workflow_billfield where billid= formidD、通过单据ID找到其用了那个表存储流程主信息,那个表存储流程明细信息select tablename from workflow_bill where id= formidselect tablename from workflow_billdetailtablewhere id= formid各单据主明细表:该表存放了流程的明细信息,同样通过REQUESTID字段和Workflow_requestbase表关联➢下面是查询名片申请流程“单据”数据的步骤:1、流程的其他信息表结构流程处理人情况表Workflow_currentoperator:此表存储了流程当前未操作者,已操作者等信息workflow_requestlog 流程处理意见表:此表存储了流程处理人处理过的审批意见workflow_requestviewlog 流程的查看日志workflow_requestbase.doc workflow_bill.doc workflow_base.doc workflow_currentoperator.docworkflow_requestLog.doc➢如何查询浏览按钮的数据列表(以医药信息为例)➢如何查询下拉框选项列表数据(以省份信息为例)➢例子:导出表单流程数据select*from workflow_base where workflowname like'经销协议申请%'得到表单ID Formid=-41和WorkFlowID=ID=959Select*from workflow_billfield where billid=-41and fieldname='wtcp'得到表单字段select tablename from workflow_bill where id=-41得到主表名称 formtable_main_41select tablename from workflow_billdetailtable where id=-41得到明细表名称select*from Workflow_requestbase where WORKFLOWID=959得到所有申请记录以及具体的RequestID=26710select xsmbb,xsmb2 from formtable_main_41 where requestid=31245得到表单内容select xsmb2 from formtable_main_41_dt1 where mainid=1181如何查字段名称Select b.fieldname, belnamefrom workflow_billfield bleft join HtmlLabelInfo lon b.fieldlabel = l.indexid and nguageid=7where billid =-41and belname='销售目标2'如何查“浏览按钮”的明细信息select*from MODEINFO where modename='省份信息'找到FormID =-85select*from workflow_bill where id=-58找到表名 formtable_main_85select*from formtable_main_58 where id=2此表即为数据查下拉列表select*from workflow_SelectItem where fieldid=6288➢查询某人有哪些流程➢批量设置超时。

SQL Server 2008 学习笔记

SQL Server 2008 学习笔记

SQL Server 2008 学习笔记目录一、SQL Server 2008 学习笔记(一)数据库系统的基本结构 (1)二、SQL Server2008 学习笔记(二)关系数据库 (3)三、SQL Server2008 学习笔记(三)数据库管理 (6)四、SQL Server2008学习笔记(四)数据表的基本操作(上) (11)五、sql server2008 学习笔记小插曲 (15)一、SQL Server 2008 学习笔记(一)数据库系统的基本结构在写我的第一篇笔记之前,先废话几句,最近打算学习一段时间的数据库知识并打算把我的读书心得晾出来和大家分享一下,希望感兴趣的园友能能够一起探讨,共同提高。

有理解的不对的地方也欢迎各位大牛拍砖,这年头不为别的,就为了能掌握点真理!废话说完了,开始今天的正文。

首先来上一张图片,了解一下数据库系统的基本结构下面我想用一个简单的比喻来描述一下数据库系统的基本结构。

数据库系统=====》仓储中心数据库========》仓储中心的货场或者是仓库数据=========》存储在货场或者是仓库中的货物数据库管理系统===》在仓储中心一系列的管理体制规则下的仓库自动化管理系统数据库管理员====》仓库的库管员应用系统======》仓储中心对外的服务窗口操作系统======》公司或者集团,是一个基础环境的作用这样就可以将数据库系统的运行描述为一个仓储中心的运转。

当有客户(用户)来仓储中心(数据库系统)存/取货物的时候,客户(用户)首先要接触的是仓储中心的对外服务窗口(软件系统),服务窗口会对客户(用户)的身份进行验证,出示证件或其他的一些方式和方法。

客户(用户)身份验证通过之后就可以进行通过服务窗口索取服务(发出一些命令)来传给仓库的自动化管理系统(DBMS)会对这些命令再一次进行验证,验证通过就提供相应的服务(返回相应的结果),验证失败会拒绝服务(返回一个错误)。

在这个过程中,客户(用户)不需要了解你想要的货物放在仓库(数据库)的具体位置,这么多的货物(数据)究竟是怎样的一个组织结构。

2020年计算机四级考试数据库复习笔记:IDEF1X 建模方法

2020年计算机四级考试数据库复习笔记:IDEF1X 建模方法

2017年计算机四级考试数据库复习笔记:IDEF1X 建模方法4.4 IDEF1X 建模方法4.4.1 IDEF1X概述1、 IDEF0侧重描述系统功能,被称为功能建模方法;IDEF1X 侧重分析、抽象和概括应用领域中的数据,称为数据建模方法;2、 IDEF1X方法具有丰富的语法和语义;3、实体集分为(1)独立标识符实体集;(2)从属标识符实体集;4、实体集之间的联系分为:(1)标定型联系;(2)非标定型联系;(3)分类联系;(4)不确定联系4.4.2 IDEF1X模型元素1、实体集:(1) 实体集语义:如果一个实体集的每一个实例都能被惟一地标识,而不决定于它与其他实体的联系,那么该实体集称为独立实体集;否则就叫从属实体集;(2) 实体集语法:IDEF1X用矩形框来表示独立实体集,用圆角矩形框来表示从属实体集;2、联系:(1) 联系语义:(A) 标定型联系:一个“确定型联系”中,如果子女实体集中的每个实例都是由它与双亲的联系而确定的,这个关系称为“标定型联系”;(B) 非标定型联系:一个“确定型联系”中,如果子女实体集中的每一个实例都能被惟一地确认而无需了解与之相联系的双亲实体集的实例,这个问题关系叫“非标定型联系”。

(C) 分类联系:是两个或多个实体集之间的联系,且在这些实体集中存在一个一般实体集,它的每一个实例都恰好与一个且仅一个分类实体集的一个实例相联系。

(D) 不确定联系:一个非确定联系又称为多对多联系,这种联系关联的两个实体集之间,任一实体集的一个实例都将对应另一实体集的0个、1个或多个实例。

(2) 联系的语法:(A) 标定联系语法:在IDEF1X图中,联系的语法用直线表示,在一个标定型联系中,子女实体集总是一个从属实体集,用圆角矩形框表示;(B) 非标定联系语法:如果两个实体集之间有关系,并且是一个非标定联系,就用一条虚线把它们连接起来。

(C) 分类联系语法:一般实体集的一个实例只能与分类实体集的一个实例相对应;(D) 不确定联系m:n的语法:不确定联系用一个两端带有实心圆的线段描述,表示多对多的连接关系。

数据库原理及应用-Access 2003笔记内容

-6-
所有域的所有取值的一个组合不能重复出现。 该集合中每一个元素(d1,d2,„,dn)叫做一个 n 元组(n-Tuple) ,简称元组 (Tuple) 。 每一个元素(d1,d2,„,dn)中的每一个值 di 叫做一个分量 di∈Di。 4、笛卡尔积 D1×D2ׄ×Dn 的基数 M(即元素(d1,d2,„,dn)的个数)为 所有域的基数的累乘之积,即M =
������ ������ =1 ������������ 。
笛卡尔积可以表示为一个二维表,是元组的集合。 5、 【DY】笛卡尔积 D1×D2ׄ×Dn 的任一子集称为定义在域 D1,D2,„,Dn 上的 n 元关系。 关系是笛卡尔积的有限子集,所以关系也是一个二维表。 6、码: ①候选码(Candidate Key)能唯一表示关系中元组的一个属性或属性集,也称 候选关键字。 ②主属性(Primary Attribute )组成候选码的诸属性称为主属性。 ③非主属性 (Non-Primary 属性。 ④主码(Primary Key)如果一个关系中有多个候选码,可以从中选择一个作 为查询、插入或删除元组的操作变量,被选中的候选码称为主关系码,简称主 码、主键、主关键字等。 (每个关系必定有且仅有一个主码) ⑤外码(Foreign Key)设 F 为基本关系 R 的一个或一组属性,但不是关系 R 的主码(或候选码) ,如果 F 与基本关系 S 的主码 K 相对应,则称 F 是基本关 系 R 的外部关系码,简称外码。 (被参照关系的主码和参照关系的外码必须定 义在同一个域上) ★(考试重点)7、基本关系表的六条性质: ①列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。 ②不同的列可出自同一个域,每一列称为一个属性,不同的属性要给予不同的 属性名。关系中不允许有重名的属性名。 ③列的顺序无所谓,即列的次序可以任意交换。 ④任意两个元组不能完全相同。

(完整版)数据库期末考试知识点笔记整理

数据库期末考试复习题库(非常全面)第一部分第一章:一选择题:1 •在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。

在这几个阶段中,数据独立性最高的是阶段。

A •数据库系统B •文件系统C •人工管理D •数据项管理答案:A2. _____________________________________________ 数据库的概念模型独立于____________________________________________________ 。

A. 具体的机器和DBMS B . E-R图C •信息世界D •现实世界答案:A3. ______________________________________ 数据库的基本特点是。

A . (1)数据可以共享(或数据结构化) ⑵数据独立性⑶数据冗余大,易移植(4)统一管理和控制B . (1)数据可以共享(或数据结构化) ⑵数据独立性⑶数据冗余小,易扩充(4)统一管理和控制C . (1)数据可以共享(或数据结构化) ⑵数据互换性⑶数据冗余小,易扩充(4)统一管理和控制D . (1)数据非结构化(2)数据独立性⑶数据冗余小,易扩充(4)统一管理和控制答案:B4. ________________ 是存储在计算机内有结构的数据的集合。

A. 数据库系统B.数据库C•数据库管理系统 D •数据结构答案:B5. ___________________________________ 数据库中存储的是。

A. 数据 B •数据模型C•数据以及数据之间的联系 D •信息答案:C6. __________________________________________________ 数据库中,数据的物理独立性是指____________________________________________ 。

A. 数据库与数据库管理系统的相互独立B. 用户程序与DBMS勺相互独立C. 用户的应用程序与存储在磁盘上数据库中的数据是相互独立的D. 应用程序与数据库中数据的逻辑结构相互独立答案:C7..数据库的特点之一是数据的共享,严格地讲,这里的数据共享是扌旨。

Excel_VBA与数据库(Access)整合笔记

精品 感谢下载载 目录 一、 创建数据库 ........................................................................................................................... 7 1-1 利用 DAO 创建数据库和数据表 ................................................................................. 7 1-2 利用 ADOX 创建数据库和数据表 .................................................................................. 8 ADOX常用方法 ........................................................................................................................... 9 1-3 利用 SQL 语句创建数据库和数据表 ............................................................................. 9 1-4 在已有的数据库中创建数据表(DAO) ...................................................................... 10 1-5 在已有的数据库中创建数据表(ADOX) ................................................................... 11 1-6 在已有的数据库中创建数据表(SQL,Command 对象) .................................... 12 1-7 在已有的数据库中创建数据表(SQL,Recordset 对象) ..................................... 13 1-10 利用工作表数据创建数据表(ADOX) ..................................................................... 14 1-11 利 用 工 作 表 数 据 创 建 数(ADO+SQL) .................................................. 17 1-12 利用工作表数据创建数据表(DAO) ........................................................................ 18 二、获取数据库中的信息 ................................................................................................................. 20 2-1检查数据表是否存在(ADO) ....................................................................................... 20 实例 2-2 检查数据表是否存在(ADOX) ......................................................................... 23 实例 2-3 检查数据表是否存在(DAO) ............................................................................ 24 实例 2-5 获取数据库中所有表的名称和类型(ADO) ................................................... 25 实例 2-6 获取数据库中所有表的名称和类型(ADOX) ................................................ 25 实例 2-7 获取数据库中所有的表的名称(DAO) ........................................................... 26 实例 2-12 检查某字段是否存在(ADO).......................................................................... 27 ·扩展:使用 connection 对象的 find 方法来查找某个字段是否存在 ........................ 28 获取数据库中某数据表的所有字段信息 ................................................................................ 29 精品 感谢下载载 实例 2-20 获取数据库的所有查询信息(ADOX) .......................................................... 29

达梦数据库入门学习笔记

达梦数据库入门学习笔记——庞世论2020.12.21数据库安装前准备中标麒麟7(NeoKylin Linux Server 7.0)达梦版本:DM 8查看linux系统版本cat /etc/issue cat /etc/redhat-release uname -r uname -m查看CPU位数getconf LONG_BIT cat /pro/cpuinfo配置CPU内存参数vim /etc/sysctl.d/99-sysctl.conf 添加以下3行Kernel.shmmax=68719476736Kernel.shmall=4294967296Kernel.msgmax=65536创建用户组groupadd dinstallUseradd dmdba -g dinstall -s /bin/bash -d /home/dmdba -m dmdbaPasswd修改资源使用限制cat /etc/security/limits.conf 添加以下2行:dmdba soft nofile 4096dmdba hard nofile 65536防火墙:systemctl status firewalld.service systemctl stop firewalld.service systemctl disable firewalld.service数据库实例创建及服务启停创建数据库实例./dbca.sh注册实例服务法1数据库配置助手 ./dbca.sh 法2:命令行环境变量配置vim ~/.bash_profile 使其生效source ~/.bash_profile数据库实例的开启与关闭./DmServiceDAVE start数据库服务管理工具(root用户) ./dmservice.sh命令行启停服务(root用户)systemctl start DmServiceDAVE.service systemctl stop DmServiceDAVE.service systemctl enable DmServiceDAVE.service systemctl status DmServiceDAVE.service数据库服务查看ps -ef |grep dm.ini登录数据库disql SYSDBA/SYSDBA 等效于disqlSYSDBA/**************.63.10:5236(链接默认实例5236端口,其他端口的实例该种方式无法连上)只能链接本端实例,无法连接远端实例。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

引论 一、本门课的系统结构 1 .系统软件----DBMS(Data Base Manager System) 2 .应用软件----DBS 二、本门课的授课内容 第一篇 第一章 概论 (基础) 第二章 关系数据库(RDBMS)----SQL 30% 第三章 安全性/完整性 第二篇 原理(50%) DBS设计 第三篇 DBMS(15-20%) 实现篇

第一章 DBS概述 §1.1 基本概念 一、信息:关于现实世界新的事实的知识 二、数据:用以载荷信息的物理符号

硬件 OS DBMS 应用程序 DBS 三、数据处理 四、数据原理——数据库技术 §1.2 数据管理进展 一、人工管理(50年代中期) 二、文件管理(50年代中期——60年代中期) 三、数据库管理(60年代末期——至今) 特点: ①关系结构——表 1 .数据结构化 ②层次结构——树 ③网状结构——图 2 .高度共享,冗余度低 3 .数据独立性高 ① 物理独立性 ② 逻辑独立性 安全性 4 .DBMS统一管理 完整性 并发控制 §1.3 DBS的组成与结构 一、DBS术语 1 .数据库:长期存放在计算机内有组织的相互关联的数据的集合 2 .DBMS:是一个系统软件,能够帮助用户建立,使用(检索、更新)管理和控制数据库的软件系统 3 .DBS:带有数据训的计算机应用系统 二、DBS组成 1 .软件——OS、DBMS、应用程序 2 .硬件 ① 内存——存放OS、DBMS、应用程序、缓冲区、工具 ② 外存——存放DB (1)系统分析员 (2)数据库管理员(DBA)※ 3 .人员 (3)数据库设计者 (4)应用程序员 (5)用户 三、DBS的结构(三级模式)

1 .外模式(子模式):关于数据库的局部逻辑结构的描述 2 .模式:关于数据库的全局逻辑结构的描述

应用程序B 应用程序C 应用程序A 应用程序D 应用程序E 外模式1 外模式2 外模式3

模式 内模式 DB

外模式/模式映射 模式/内模式映射 DBMS 3 .内模式:对数据库的存储结构的描述 ①模式和内模式各只有一个 ②外模式可以有多个,必须命名,不同名的外模式之间互相结论 覆盖 ③一个外模式可以被多个应用程序所启用,但每个应用程序只能用一个外模式 ④三级模式之间的两级映射由DBMS支持 §1.4 数据模型 一、 定义:数据结构,完整性约束,数据操作组成数据模型 二、 分类 基于对象模型——(独立于计算机)如ER图 基于记录模型——(计算机) 1 .关系模型 2 .层次模型 3 .网状模型 §1.5 DBMS 一、 定义功能(DDL) 二、 操纵功能 第二章 关系数据库

§2.1 关系数据模型 1 .数据结构 一、三要素 2 .完整性约束规则 3 .关系运算 二、数据结构 1 .域:值的集合 2 .基数:域中元素的个数 3 .笛卡尔积:D1×D2×…×Dn={(d1......dn)|di∈Di,1≤i≤n} 例:D1={白,李} D2={丁,王,张} D3={白一,李一,李二} ※ 4 .关系:从笛卡尔积抽取的有意义的子集,构成关系R(U,D,DOM,I,F) ①任何元组不能全同 ②行的顺序不重要,可以任意交换 ※5 .关系的性质 ③列的顺序不重要,可以任意交换 ④列是同质的 ⑤不同的列可出自相同的栈 ⑥每一分量是不可再分的,是原子的 §2.2 关系运算 DDL RDBMS DML 关系代数语言 DCL 关系演算语言 关系代数语言:用对关系的代数运算来表达查询 关系代数语言——ISBL 关系演算语言:用谓词演算公式表达查询 关系演算语言 元组演算语言——代表QUEL(已实现) 域演算语言——代表QBE(已实现) 介于关系代数与关系演算之间的语言——SQL

按表达查询方式不同 传统集合运算——并、交、差 一、关系代数语言 选择 专门的关系运算 投影 连接 除法 (一)传统集合运算(要求:两个关系相容,即属性个数相同,对应的列出自相同的域) 1 .并 ①公式:R∪S={t|t∈R∨t∈S} ②作用:由属于R或属于S的所有元组构成,但去掉重元 组 2 .交 ①公式:R∩S={t|t∈R∧t∈S} ②作用:由属于R又属于S的所有元组构成 3 .差 ①公式:R-S={t|t∈R∧t∈S} ②作用:由属于R但不属于S的元组构成 R∩S=R-(R-S)=S-(S-R) (二)专门的关系代数运算 1 .选择 (1) 公式:ςF(R) 例:ςA>4(R) (2)作用:在关系的水平方向查找(选取)满足给定条件的子集 2.投影 (1)公式:π属性表(R) 例:πsn(P) 例3:求CS年龄=19的学生姓名 ①P=ςSD=’cs’∧SA=19(S) ②πsn(P) VF: SQL: CREAT S(新建) SELECT sno,sn 或 USE a:\s (打开) FROM S LIST for SD=’CS’ .and. SA=19 WHERE SD=’CS’ AND SA=19 Fields sno,sn 例4:求选修‘c2’课学号及成绩 πsno,GR(ςcno=’CS’(SC)) 例5:求选修‘c2’课姓名及成绩 (3)作用:在关系的垂直方向查找(选取)满足给定条件的子集 笛卡尔积 3.连接 (有)条件连接 等值连接 自然连接 (1) 笛卡尔积 R×S={trts|tr∈R∧ts∈S} (2)条件连接 R S={trts| tr∈R∧ts∈S∧tr[A]θts[B]} ==ςR,AθS.B(R×S) (3)等值连接 R S={trts| tr∈R∧ts∈S∧tr[A]=ts[B]} ==ςR,A=S.B(R×S) ※(4)自然连接 R S={trts[B]= tr∈R∧ts∈S∧tr[A]=ts[B]} ==πR.*,S.*(B)(ςR,A=S.B

区别 AθB A=B (R×S)) 解例5:πsn,GR(πsno,GR(ςcno=’c2’(SC) πsno,sn(S))) 例6:求‘CS’系选‘C1’课的姓名及学号 解:πsno,sn(ςSD=’cs’(SC)) πsno(ςcno=’c1’(SC)) 例7:求‘CS’系选‘C1’课成绩优秀的姓名及学号 解:πsno,sn(ςSD=’cs’(SC)) πsno(ςcno=’c1’∧GR≥90

(SC))

例8:求刘老师所教课的课名及所选课学生姓名 πcn,sn(πcno,cn(ςCT=’刘’(C)) SC πsno,sn(S)) 例9:求‘CS‘系年龄小于19岁的学生姓名及所选课的课名 πsn,cn(πsno,sn(ςSD=’cs’ ∧SA<19(S)) SC πcno,cn(S)) 例10:求无人选的谭号 πcno(c)-πcno(SC) 4.除法 (1)R(X,Y)÷S(Y) 例13:求选全部课程的学生姓名 πsn(S (πsno,cno(SC)÷πcno(C))) 例12:求同时选‘C1’和‘C2’课的姓名 πsno,cno(SC)÷πcno(ςcno=’c1’∧cno=’c2’

(C))

§2.3 SQL(结构化查询语言) 视图(外模式) DDL 基本表(模式) 存储文件(内模式) 查找――select SQL DML 插入――insert 删除――delete 修改――update 安全性 DCL 完整性 并发控制――加锁 一、 SQL特点 1. 一体化语言,也就是集DDL,DML,DCL为一体 2. 介于关系代数和关系演算之间的语言 3. 一个语法两种使用方式:交互使用;作为其它程序设计语言的子语言使用 4. 语法简单,易学易用 5. SQL语句的查询结果是一张表 二、 DDL定义功能 1. 定义基本表 语法格式:creat table S(sno char(5) not null, sn char(8) not null, SA integer,SD char(20)); alter table S add drop 2.视图:从一个或几个基本表中导出的表,是一个虚表 ※三.SQL的数据操纵功能 1.简单查询 (一)查找 2. 集合查询 并,交,差 union,intersect,minus 3.连接查询 4.嵌套查询 相关子查询――使用exists(not exists) 不相关子查询――使用in(not in) 1.Select的语法格式 Select 目标列 from 关系表 [where 条件] [group by] [order by] ①省略where子句,查询化作投影运算 说明 ②当目标列包含了被选关系的全部属性时,查询化为选择运算 ③连接查询当中要写明连接条件 例1:select sn,SD from S πsn,SD(S) 例2:select sno,sn,SD,SA /* from S where SA<19 ςSA<19(S)

相关文档
最新文档