数据库应用系统开发.ppt_第1页
数据库应用系统开发.ppt_第2页
数据库应用系统开发.ppt_第3页
数据库应用系统开发.ppt_第4页
数据库应用系统开发.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

数据库技术与应用,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(“平均成绩=“ & sum) End Sub,SqlDataAdapter DataSet,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 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(“平均成绩=“ & sum) End Sub,SqlCommand ExecuteReader SqlDataReader,SqlCommand、ExecuteScalar,Private Sub Form1_Load() Handles MyBase.Load Dim sql As String = “select avg(score) from sc“ Dim myconn As New SqlConnection(“Initial Catalog= 学生选课;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.客户) mybind = Me.BindingContext(Me.DataSet11, “客户“),(2)用四个button实现客户表的数据浏览 mybind.Position = 0 /到头 mybind.Position = mybind.Position 1 /往前翻 mybind.Position = mybind.Position + 1 /往后翻 mybind.Position = mybind.Count 1 /到尾,(3)用五个button实现客户表的更新操作 mybind.AddNew() /插入一条记录 mybind.RemoveAt(mybind.Position) /删除当前记录 mybind.EndCurrentEdit() /结束当前更新状态 mybind.CancelCurrentEdit() /取消当前编辑修改 mybind.EndCurrentEdit() Me.SqlDataAdapter1.Update(Me.DataSet11.客户),数据表示层的设计,功能的设计 界面的布局 信息交互,好的应用程序的界面设计是: 功能全面、控件布局合理、视觉美观、对用户友好!,添加应用程序组件,XPanderC

温馨提示

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

评论

0/150

提交评论