资源预览内容
第1页 / 共45页
第2页 / 共45页
第3页 / 共45页
第4页 / 共45页
第5页 / 共45页
第6页 / 共45页
第7页 / 共45页
第8页 / 共45页
第9页 / 共45页
第10页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数据库技术与应用第九章 数据库应用系统开发,数据库技术与应用,Windows数据库应用程序开发,数据库技术与应用,本书目录,1,数据库技术与应用第九章 数据库应用系统开发,数据库应用程序开发技术,数据库技术 应用程序开发工具 数据访问技术 软件工程的理念,使用技术,知识点,数据库设计过程、完整性控制、安全性控制、数据库恢复技术; VB.Net程序设计; ADO.Net; 应用程序开发过程:系统分析、需求分析、功能设计、编码、测试等,数据库技术与应用第九章 数据库应用系统开发,应用系统的多层结构,数据库,连接,数据适配器,数据集,显式连接方法,用户界面 (窗体,数据访问层,表示层,数据层,注意:好的应用程序通常把用户界面与数据访问分开,数据库技术与应用第九章 数据库应用系统开发,数据库设计,需求分析 概念模式设计E/R图设计 逻辑模式设计将E/R图转换为关系模式并作规范化处理 物理模式设计选择RDBMS开发平台创建数据库,数据库技术与应用第九章 数据库应用系统开发,数据库设计实例,设某商业集团数据库中有3个实体集。一是“商店”实体集,属性有商店编号、商店名、地址等;二是“商品”实体集,属性有商品号、商品名、规格、单价等;三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。 商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可以放在多个商店销售,每个商店每销售一种商品,有月销售量;商店与职工间存在着“聘用”关系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。 (1)试画出ER 图,并在图上注明属性、联系的类型。 (2)将ER图转换成关系模式集,并指出每个关系模式主键和外键,数据库技术与应用第九章 数据库应用系统开发,商店(商店编号,商店名,地址,商品(商品号,商品名,规格,单价,职工(职工编号,姓名,性别,业绩,商店编号,聘期,月薪,销售(商店编号,商品号,月销售量,商品、销售、商店、职工3NF,数据库技术与应用第九章 数据库应用系统开发,完整性控制,完整性控制:保证数据库中的数据和语义的正确性及有效性,采取有效的措施防止导致错误数据的操作,SQL Server2000数据完整性有四种类型: 实体完整性 域完整性 参照完整性(也叫引用完整性) 用户自定义完整性,数据库技术与应用第九章 数据库应用系统开发,SQL中的CREATE TABLE命令,在SQL查询语句中用于定义列或字段一级的完整性约束,一般包括: NOT NULL和NULL约束 PRIMARY KEY约束 UNIQUE约束 FOREIGN KEY约束 DEFAULT定义 CHECK约束,数据库技术与应用第九章 数据库应用系统开发,例: 在学生选课数据库中,定义关系模式SC(snum,cnum,score) 。 CREATE TABLE SC( snum char(10) NOT NULL FOREIGN KEY (snum) REFERENCES student(snum) ON DELETE CASCADE, cnum char(10) NOT NULL FOREIGN KEY REFERENCES course ON DELETE CASCADE, score INT NULL CHECK(score=0 AND score=100), PRIMARY KEY(snum,cnum,当要修改student表中的snum值时或要修改course表中的cnum值时,先要检查SC中有无元组的snum值或cnum值与之对应,若没有,则系统接受修改操作,否则,系统拒绝此操作。 当要删除student表或course表中某个元组时,系统也要检查SC表,若找到相应元组则将它们也随之删除,数据库技术与应用第九章 数据库应用系统开发,域完整性控制实例,例: 设计关系模式 teacher(tnum,tname,ID,sex,age,Join_date), 要求年龄必须介于1865之间,ID表示身分证号必须唯一,性别只能是“男”或“女”,姓名非空,工号必须是数字字符,进入单位日期缺省状态取系统时间,CREATE TABLE teacher( tnum VARCHAR(6) NOT NULL CHECK(tnum LIKE 0-90-90-9 0-90-90-9), tname VARCHAR(10) NOT NULL, ID CHAR(18) UNIQUE, sex CHAR(2) CHECK(sex IN(男,女), age INT CHECK(age BETWEEN 1865), Join_date DATETIME DEFAULT GETDATE(), PRIMARY KEY(tnum,数据库技术与应用第九章 数据库应用系统开发,触发器实现完整性控制,例:建立一个DELETE触发器,每当在student表中删除一条记录时,也将在SC表中删除相应的记录。关系模式如下: student(snum,cname,sex,age) sc(snum,cnum,score,数据库技术与应用第九章 数据库应用系统开发,CREATE TRIGGER student_delete ON student FOR DELETE AS DECLARE _snum AS CHAR(10) SELECT _snum=d.snum FROM deleted d IF NOT EXISTS (SELECT * FROM sc WHERE snum=_snum) BEGIN PRINT 已删除没有选课的学生! COMMIT TRAN END ELSE BEGIN DELETE FROM sc WHERE snum=_snum PRINT 成功删除! END,数据库技术与应用第九章 数据库应用系统开发,数据库的实施,1、根据关系模式创建数据库后,要及时备份; 2、项目设计小组的成员在分工调试项目时,要用统一的数据库模式进行各自的设计,数据库中具体的测试数据可以各不相同; 3、项目最后连调时,必须用实际的、完整的数据库数据进行测试,以期达到软件测试的最终目的,注意:要善于用存储过程,因为该技术可以提高系统运行效率,数据库技术与应用第九章 数据库应用系统开发,数据访问层的设计,ActiveX Data Object(ADO).NET就是微软提供的最新的数据访问模型,是应用程序与相容数据源的数据访问接口,应用程序可以使用ADO.NET连接任意类型的数据源,并检索、处理和更新数据源中的数据,新技术,数据库技术与应用第九章 数据库应用系统开发,ADO.NET DataSet,ADO.NET DataSet 是 ADO.NET 的断开式结构的核心组件。DataSet 的设计目的很明确:为了实现独立于任何数据源的数据访问。因此,它可以用于多种不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据。DataSet 是数据的内存驻留表示形式,无论数据源是什么,它都会提供一致的关系编程模型。DataSet 包含一个或多个 DataTable 对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关 DataTable 对象中数据的关系信息组成,数据库技术与应用第九章 数据库应用系统开发,NET Framework 数据提供程序,NET Framework 数据提供程序是ADO.NET 结构的另一个核心元素,其组件的设计目的相当明确:实现对底层数据源的访问。这些组件包括:Connection、Command、DataAdapter和DataReader对象。Connection 对象提供与数据源的连接。Command 对象使您能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。DataReader 从数据源中提供高性能的数据流。最后DataAdapter 提供连接 DataSet 对象和数据源的桥梁。DataAdapter 使用 Command 对象在数据源中执行 SQL 命令,以便将数据加载到 DataSet 中,并使对 DataSet 中数据的更改与数据源保持一致,数据库技术与应用第九章 数据库应用系统开发,Connection对象,连接字符串格式SqlConnection Initial Catalog= mydb;DataSource=myServer;User ID=sa;password,数据库技术与应用第九章 数据库应用系统开发,应用实例,例:求SC中所有选课学生的平均成绩,SC(snum,cnum,score,数据库技术与应用第九章 数据库应用系统开发,Private Sub Form1_Load() Handles MyBase.Load Dim sql As String = select * from sc Dim myconn As New SqlConnection(Initial Catalog=学生选课;Data_ Source=NAONAO;Integrated Security=SSPI;) Dim adapter As SqlDataAdapter = New SqlDataAdapter(sql, myconn) Dim sc_dataset As New Data.DataSet adapter.Fill(sc_dataset, sc) Dim i As Integer = 0 Dim sum As Integer = 0 For i = 0 To sc_dataset.Tables(sc).Rows.Count 1 sum = sum + sc_dataset.Tables(sc).Rows(i).Item(score) Next sum = sum / i MsgBox(平均成绩= Data_ Source=NAONAO;Integrated Security=SSPI;) Dim mycmd As New SqlCommand(sql, myconn) Dim reader_sc As SqlDataReader Dim i As Integer = 0 Dim sum As Integer = 0 myconn.Open() reader_sc = mycmd.ExecuteReader() Do While reader_sc.Read() sum = sum + reader_sc.item(2) i = i + 1 Loop reader_sc.Close() myconn.Close() sum = sum / i MsgBox(平均成绩= Data_ Source=NAONAO;Integrated Security=SSPI;) Dim mycmd As New SqlCommand(sql, myconn) Dim avg As Integer = 0 myconn.Open() avg = mycmd.ExecuteScalar() myconn.Close() MsgBox(平均成绩= & avg) End Sub,数据库技术与应用第九章 数据库应用系统开发,数据绑定,数据绑定是绑定技术中使用最频繁,也是最为重要的技术,也可以说是各种.Net开发语言开发数据库应用程序最需要掌握的基本知识之一。数据绑定之所以很重要,是因为在.Net FrameWork SDK中并没有提供数据库开发的相关组件,即如:DbTextBox、DbLabel等用于数据库开发的常用组件在.Net FrameWork SDK中都没有。而数据绑定技术使得界面上的所有控件访问数据源数据时可以步调一致,数据库技术与应用第九章 数据库应用系统开发,数据库技术与应用第九章 数据库应用系统开发,1)建立SQLServer客户表与VB.net控件之间的数据绑定关系 Public mybind As BindingManagerBase Me.SqlDataAdapter2.Fill(Me.DataSet11.客户) my
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号