数据库课件:第2讲 数据库系统的体系结构_第1页
数据库课件:第2讲 数据库系统的体系结构_第2页
数据库课件:第2讲 数据库系统的体系结构_第3页
数据库课件:第2讲 数据库系统的体系结构_第4页
数据库课件:第2讲 数据库系统的体系结构_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第2讲 数据库系统的结构思考以下问题思考以下问题: 1. 数据管理的技术与方法有哪些?数据管理的技术与方法有哪些?各有什么特点?各有什么特点? 2. 数据库系统的结构如何?其数据库系统的结构如何?其数据独立性是如何体现的?数据独立性是如何体现的? 3. 数据库系统是如何工作的?数据库系统是如何工作的?2一. 数据管理的技术与方法数据处理(数据处理(Data Processing)是指对数)是指对数据的收集、组织、整理、加工、存储和据的收集、组织、整理、加工、存储和传播等工作。传播等工作。数据管理是其他数据处理的核心和基础,数据管理是其他数据处理的核心和基础,其内容包括:其内容包括:组织和保存

2、数据组织和保存数据进行数据维护进行数据维护提供数据查询和数据统计功能提供数据查询和数据统计功能3一. 数据管理的技术与方法数据管理的技术与方法经历了三个阶段:数据管理的技术与方法经历了三个阶段: 手工管理数据阶段手工管理数据阶段 文件系统管理数据阶段文件系统管理数据阶段 数据库系统管理阶段数据库系统管理阶段各有何特点?各有何特点?4一. 数据管理的技术与方法手工管理数据的特点:手工管理数据的特点: 1) 不保存大量的数据不保存大量的数据 2) 没有软件系统对数据进行管理没有软件系统对数据进行管理 3) 基本上没有基本上没有“文件文件”概念概念 4) 一组数据对应一个程序,数据和程序一组数据对应

3、一个程序,数据和程序紧密相关紧密相关5一. 数据管理的技术与方法文件系统管理数据文件系统管理数据的特点:的特点: 1) 数据以文件的形式长久地被保存在计数据以文件的形式长久地被保存在计算机的外存中。算机的外存中。 2) 文件系统有专门的数据管理软件提供文件系统有专门的数据管理软件提供有关数据存取、查询及维护功能。有关数据存取、查询及维护功能。 3) 文件系统中的数据文件具有多样化。文件系统中的数据文件具有多样化。 4) 文件系统的数据存取以记录为单位。文件系统的数据存取以记录为单位。6一. 数据管理的技术与方法数据库系统管理数据的特点:数据库系统管理数据的特点: 1) 1) 数据库设计时面向数

4、据模型对象数据库设计时面向数据模型对象 2) 2) 数据库系统的数据冗余度小、数据共享度数据库系统的数据冗余度小、数据共享度高高 3) 3) 数据库系统的数据和程序之间具有较高的数据库系统的数据和程序之间具有较高的独立性独立性 4) 4) 数据库系统通过数据库系统通过DBMSDBMS进行统一的数据安全进行统一的数据安全性、完整性、并发控制和数据恢复控制性、完整性、并发控制和数据恢复控制 5) 5) 数据库中数据的最小存取单位是数据项数据库中数据的最小存取单位是数据项7二. 示例例:分别用文件系统和数据库系统对学生学习情况信息进行管理。 学生学习情况信息包括: 学号(长度9个字符) 姓名(长度1

5、5个字符) 所学课程名称(长度50个字符) 成绩(数字)8二. 示例 样本数据如下:学号姓名课程名称成绩060900001 ZhangSanDatabase89060900028 WangWuOS78060900001 ZhangSanEnglish849二. 示例1. 采用文件系统实现(c程序)(1) 定义结构类型 typedef struct char stuno10; char stuname16; char course51; int score; StudyDetail;10二. 示例(2) 确定文件存放路径及操作函数 char filepath=c:stuscore.dat; vo

6、id RecordPrint(); bool AddRecord(StudyDetail sd); 11二. 示例void RecordPrint()FILE *fp;StudyDetail sd;if(fp=fopen(filepath,rb)=NULL)printf(No record.n);return;int flag=1;while(flag!=0) flag=fread(&sd,sizeof(StudyDetail),1,fp); if(flag!=0) printf(%-15s %-15s %-15s %4dn,sd.stuno,sd.stuname,sd.course,

7、sd.score);fclose(fp);12二. 示例bool AddRecord(StudyDetail sd)bool success=true;FILE *fp;if(fp=fopen(filepath,ab+)=NULL)printf(File cannot be openedn);success=false;return 0;if(success & fwrite(&sd,sizeof(StudyDetail),1,fp)!=1)printf(file write errorn);success=false;fclose(fp);return success;13(

8、3) 主程序设计void main()int flag=1, j;bool temp;while(flag) printf(Please Slect:n); printf(1. Display all recordsn); /显示所有记录 printf(2. Add one recordn); /插入一条记录 printf(3. Exit the program n); /退出 scanf( %d,&j); switch(j) case 1:RecordPrint(); break; case 2: StudyDetail sd;printf(Please input the elem

9、ent and its position:n);printf(Format: stuno stuname course score.n for Example: 060900011 zhangsan os 81n);scanf( %s%s%s%d,sd.stuno,sd.stuname,sd.course,&sd.score); if(AddRecord(sd)=false) printf(Insert failed!n); /插入失败 else printf(Insert successfully!n); /成功插入break; default:flag=0;printf(The p

10、rogram ends, press any key to exit!n); 14二. 示例(4) 完善程序完善程序添加头文件添加头文件 #include #include #include 15二. 示例2. 采用数据库系统实现(SQL SERVER)(1)需求分析(建立关系模式)名称含义类型stuno学号varhcar(9)name姓名varchar(15)名称含义类型cno课程号varhcar(6)cname课程名varchar(50)名称含义类型stuno学号varhcar(9)cno课程号varchar(6)score分数intstudents 表courses 表study 表16

11、二. 示例2. 采用数据库系统实现(SQL SERVER)(2) 利用SQL SERVER2000创建数据库数据库名:jwgl三个表: students,courses,study建立表之间的联系:保证数据的合理性创建视图: Studetails创建存储过程:AddRecord 17Studetail视图: SELECT study.stuno, students.stuname, o,ame, study.score FROM courses INNER JOIN study ON o = o INNER JOIN students ON study.stuno = students.stu

12、noAddRecord存储过程: CREATE PROCEDURE AddRecord stuno varchar(20), cno varchar(20), score int AS if (Select count(*) from study where stuno=stuno and cno=cno ) 0 Update study set score=score where stuno=stuno and cno=cno else Insert into study(stuno,cno,score) values(stuno,cno,score)GO 18二. 示例2. 采用数据库系统

13、实现(SQL SERVER)(3) 利用VB设计系统操作界面 19后台代码:Dim db As New ADODB.ConnectionDim cmd As New ADODB.CommandPrivate Sub Command1_Click() Dim strSQL As String If Trim(Text1.Text) = Then MsgBox 成绩不能为空 Exit Sub End If db.ConnectionString = Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=

14、jwgl;Data Source=LILLIAN db.Open Set cmd.ActiveConnection = db cmd.CommandType = adCmdStoredProc cmd.CommandText = AddRecord cmd.Parameters.Item(stuno).Value = Trim(DataCombo1.Text) cmd.Parameters.Item(cno).Value = Trim(DataCombo2.Text) cmd.Parameters.Item(score).Value = Trim(Text1.Text) cmd.Execute

15、 db.Close Adodc1.RefreshEnd Sub20二. 示例3. 分析两种实现方式的优缺点(1) 易用性方面 界面方式(2) 系统可扩展方面 增加功能,修改功能(3) 程序设计,实现及重用性方面21思考1. 除了VB语言,如果采用其它语言如VC,C#,JAVA等编程,该如何实现对数据库的操作呢? 访问数据库大致有四步: (1) 建立到数据库的连接 (2) 构造操作数据库的命令 (3) 发送命令,获取操作结果 (4) 关闭连接22思考2. 除了桌面型应用程序,Web应用程序如何实现对数据库的操作?实现方法有什么不一样吗? Web应用程序操作数据的原理与桌面型应用程序一样,只不过这

16、些代码位于Web服务器上。 由于Web技术已经非常成熟,各种组件已经将数据操作任务模块化,因此在编程实现上有时比桌面型应用程序还简单些。23思考3. 除了ADO技术作为访问数据库的中间件外,还有其它技术用来访问数据库吗? 访问数据库的技术很多,如ODBC,JDBC,OLE DB,ADO.NET,Hibernate24三. 数据库系统的结构数据库系统的三级模式结构数据库系统的三级模式结构 应用应用A 应用应用B 应用应用C 应用应用D 应用应用E 外模式外模式1 外模式外模式2 外模式外模式3 外模式外模式模式映象模式映象 模式模式 内模式内模式 数据库数据库模式模式内模式映象内模式映象 模式(

17、Schema)是指对数据库中数据的逻辑结构和特征的描述25三. 数据库系统的结构1. 1. 数据库的三级模式结构数据库的三级模式结构(1) (1) 逻辑模式(逻辑模式(Logic SchemaLogic Schema) 对数据库中数据的整体逻辑结构和特对数据库中数据的整体逻辑结构和特征的描述。征的描述。(2) (2) 外模式(外模式(External SchemaExternal Schema) 对各个用户或程序所涉及到的数据的对各个用户或程序所涉及到的数据的逻辑结构和数据特征的描述。逻辑结构和数据特征的描述。(3) (3) 内模式(内模式(Internal SchemaInternal Sc

18、hema) 数据的内部表示或底层描述。数据的内部表示或底层描述。26三. 数据库系统的结构2. 2. 数据库系统的二级映象技术及作用数据库系统的二级映象技术及作用(1) (1) 外模式外模式/ /模式的映象模式的映象 定义外模式与数据模式之间的对应关定义外模式与数据模式之间的对应关系,保证了数据的逻辑独立性。系,保证了数据的逻辑独立性。(2)(2)模式模式/ /内模式的映象及作用内模式的映象及作用 定义数据的逻辑模式与内模式之间的定义数据的逻辑模式与内模式之间的对应关系,保证了数据的物理独立性。对应关系,保证了数据的物理独立性。27三. 数据库系统的结构3. 3. 不同用户使用的数据视图不同用户使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论