第9章 数据库技术的发展
9.1 面向对象的概念建模
9.1.1 面向对象的数据类型系统
在面向对象技术中,数据类型系统由基本类型、符合类型和引用类型三部分组成。
1.基本类型
基本数据类型是指整型、浮点型、字符、字符串、布尔型和枚举型。
2.复合类型
复合类型有下列五种:
(1)行类型。不同类型元素的有序集合称为行类型(Row Type),也称为元祖类型、结构类型或对象类型。
(2)数组类型。相同类型元素的有序结合称为数组类型(Array Type)。
(3)列表类型。相同类型元素的有序结合,并且允许有重复的元素,称为列表类型(List Type)。
(4)包类型。相同类型元素的无序集合,并且允许有重复的元素,称为包类型(Bag Type)。也称为多集类型(Multiset Type)。
(5)集合类型。相同类型元素的无序集合,并且所有的元素必须是不同的,称为集合类型(Set Type),有时也称为关系类型。
复合类型中的后四种类型——数组、列表、包、集合——统称为汇集(collection)类型或批量(bulk)类型。
3.引用类型(Reference Type)
引用类型相当于程序设计中指针的概念,引用类型这个概念可以把类型定义中的实例映射扩充到类型值域中的实例映射,提供有关实现细节的抽象。引用类型可以避免数据结构的无穷嵌套问题。
9.1.2 对象联系图
对象联系图中有下列七个基本成分:
(1)椭圆代表对象类型(相当于实体类型);
(2)小圆圈表示属性是基本数据类型(整型、实型、字符串型等);
(3)椭圆之间的边表示对象之间的“引用”;
(4)单箭头(→)表示属性值是单值(属性可以是基本数据类型,也可以是另一个对象类型,即关系类型);
(5)双箭头(→→)表示属性值是多值(属性可以是基本数据类型,也可以是另一个对象类型,即关系类型);
(6)双线箭头表示对象类型之间的超类与子类联系(从子类指向超类);
(7)双向箭头表示两个属性之间的联系为逆联系。
9.1.3 UML类图
1.统一建模语言(UML)概述
“统一建模语言”(Unified Modeling Language,简写为UML)
2.用类图表达类和关联
类图中的基本成分是类和关联
(1)类被表示为由三个部分组成的方框
(2)关联是对类的实例之间联系的命名,相当于ER模型中的联系类型。与关联有关的内容有:
① 关联元素(Degree):与关联有关的类的个数,称为关联元数或度数。
② 关联角色(Role):关联的端部,也就是与关联相连的类,称为关联角色。角色名可以命名也可以不命名,就以类的名字作为角色名。
③ 重复度(Multiplicity):重复度是指在一个给定的联系中有多少对象参与。及时关联角色的重复度。
3.用类图表达关联类
4.用类图表达概化/特化
下面介绍类图中与概化/特化有关的内容
(1)鉴别器
可以在紧靠路径处设置一个鉴别器(Discriminator)指出概化的基础。
(2)概化表示了继承性联系
(3)抽象类和具体类
(4)子类的语义约束
子类之间的语言约束主要有4种:
① Overlapping(重叠):子类的对象集可以相交。
② Disjoint(不相交):子类的对象不可以相交。
③ Complete(完备):超类中的对象必须在子类中出现。
④ Imcomplete(非完备):超类中的对象可以不再子类中出现。
5.用类图表达聚合
聚合(Aggregation)表达了成分对象和聚合对象之间的“is part of”(一部分)的联系。聚合实际上是一种较强形式的关联关系(附加“is part of”语义)
9.2 开放数据库互连(ODBC)
9.2.1 ODBC概念
9.2.2 ODBC的体系结构
ODBC技术为应用程序提供了一套CLI函数库和基于DLL的运行支持环境。这里两个缩写是:
CLI:Call-Level Interface ,调用层接口
DLL:Dynamic Link Library,动态链接库
1.应用程序
2.驱动程序管理器
3.DB驱动程序
4.ODBC的数据源管理
数据源(Data Source Name,简称DSN)是驱动程序与DBS连接的桥梁,数据源不是DBS,而是用于表达一个ODBC驱动程序和DBMS特殊连接的命名。
9.2.3 SQL/CLI
API是微软公司ODBC技术的术语,是非SQL名称。在SQL标准中,称为“调用层接口”(Call Level Interface,简记为CLI)。SQL/CLI 是ODBC技术的延续。CLI定义了一套可以从宿主语言调用的公共函数,每一个函数具有一个名称和一个要求的算法(当使用这个函数调用时,DBMS应该做什么)。
使用SQL/CLI时,函数调用中SQL语句将作为字符串参数动态地创建和传递,由于数据库命令要在运行时处理,因此有必要将宿主程序与数据库交互的有关信息记录在运行时数据结果中,此信息保存在以下四种类型的记录中,表示为C数据类型中的复合结构(Struct):
(1)环境记录(Environment Record):用作为一个容器,设置环境信息,以保存一个或多个数据库连接。一个应用程序只用一个环境记录,并且必须在连接数据库之前申请环境记录。
(2)连接记录(Connection Record):保存一个特定数据库连接所需的信息。表示应用系统与数据源之间的连接。每一个连接记录包含在环境记录中,而一个环境记录可包含多个连接记录。
(3)语句记录(Statement Record):保存一个SQL语句所需的信息。应用程序在提交SQL语句前必须先申请一个语句记录。每一个语句记录包含在连接记录中,而一个连接记录可包含多个语句记录。
(4)描述记录(Description Recod):保存元组或参数的有关信息,如元组中的属性个数及类型,或某个函数调用中的参数个数及类型。
9.2.4 典型的数据库应用系统开发工具
<!--EndFragment-->
分享到:
相关推荐
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
# 基于Qt框架的智能家居管理系统 ## 项目简介 本项目是一个基于Qt框架开发的智能家居管理系统,旨在提供一个集成的平台来监控和管理家庭环境中的各种传感器数据,如温度、湿度、烟雾状态、红外状态等。系统通过图形界面实时展示数据,并提供警报功能以应对异常情况。 ## 项目的主要特性和功能 1. 实时数据监控通过Qt和Qwt库创建的曲线图,实时显示温度和湿度数据。 2. 多传感器支持支持温度、湿度、烟雾、红外等多种传感器的监控。 3. 警报系统当传感器数据超过设定阈值时,系统会触发警报,并通过界面显示警告信息。 4. 用户交互提供滑动条和复选框,允许用户调整警报阈值或关闭警报。 5. 网络通信通过TCP套接字与服务器通信,获取和发送传感器数据及网络拓扑信息。 6. 蓝牙数据读取支持通过蓝牙读取传感器数据并更新界面显示。 ## 安装使用步骤 1. 环境准备 确保已安装Qt开发环境。 安装Qwt库以支持曲线图功能。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
基于springboot高性能计算中心的高性能集群共享平台源码数据库文档.zip
# 基于JavaFX的图片管理系统 ## 项目简介 本项目是一个基于JavaFX的图片管理系统,旨在提供一个用户友好的界面来管理和浏览图片。系统支持图片的预览、重命名、删除、复制、粘贴等操作,并提供了多种排序和展示方式。 ## 项目的主要特性和功能 1. 预览窗口 目录树展示 缩略图预览 单选、多选(Ctrl+左键)、框选功能 图片信息显示(如文件名、大小、最后修改时间等) 2. 右键菜单 复制粘贴图片 单选和多选重命名 删除图片 3. 展示窗口 图片放大缩小 左右切换图片 幻灯片播放功能 4. 排序功能 按文件名排序 按文件大小排序 按最后修改时间排序 5. 其他功能 图片信息封装(ImageBean) 文件树节点管理(FileTreeItem)
# 基于Windows窗体的披萨店厨房管理系统 ## 项目简介 这是一个基于Windows窗体的应用程序,主要用于披萨店的厨房管理。该系统通过WebSocket与服务器进行实时通信,显示从服务器接收到的订单信息。用户界面简洁明了,易于操作。 ## 项目的主要特性和功能 1. 实时通信: 通过WebSocket与服务器进行实时数据交换,获取订单信息。 2. 订单显示: 在窗体上实时显示订单信息,包括订单号和菜品等。 3. 界面简洁: 用户界面设计简洁,易于操作。 4. 定时刷新: 定时器用于定时从服务器获取消息,确保数据的实时性。 5. 错误处理: 在连接过程中遇到技术问题时会显示错误消息框。 6. 退出功能: 提供退出按钮,点击后程序会退出。 ## 安装和使用步骤 1. 下载项目源码文件: 从相关仓库或网站下载此项目的源码文件。 2. 准备开发环境: 确保你的开发环境已经安装了必要的软件和工具,如Visual Studio等。
基于springboot高校创新创业课程体系源码数据库文档.zip
基于springboot汽车美容与保养网站源码数据库文档.zip
基于springboot校友录管理系统源码数据库文档.zip
Cocos2d-x教程视频使用Eclipse在Ubuntu下搭建Cocos2d-x 3集成开发环境提取方式是百度网盘分享地址
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
基于springboot服装生产管理信息系统源码数据库文档.zip
# 基于Spring Boot和Redis的高并发秒杀系统 ## 项目简介 本项目是一个基于Spring Boot框架开发的高并发限时抢购秒杀系统。系统实现了基本的登录、查看商品列表、秒杀、下单等功能,并针对高并发场景进行了优化,包括系统缓存、降级和限流等措施。通过Redis、RabbitMQ等中间件技术,确保系统在高并发情况下的稳定性和性能。 ## 项目的主要特性和功能 ### 核心功能 用户登录用户可以通过手机号和密码进行登录,系统支持两次MD5加密确保密码安全。 商品列表展示用户可以查看所有商品的列表,包括商品的详细信息、库存数量、秒杀价格等。 商品详情展示用户可以查看单个商品的详细信息,包括秒杀状态和剩余时间。 秒杀下单用户可以参与秒杀活动,系统通过本地标记、Redis预处理、RabbitMQ异步下单等技术确保高并发下的系统稳定。 订单详情用户可以查看自己的订单详情,包括订单状态、商品信息等。 ### 技术优化
基于springboot校园论坛系统源码数据库文档.zip
飞利浦CT机自动推送配置
本教程介绍了 PHP 的基础语法、函数与面向对象编程、文件操作、以及与 MySQL 的交互。通过实例与练习,帮助您快速入门 PHP 开发,为动态网站和 Web 应用打下坚实基础。
# 基于Android的玩具租赁系统 ## 项目简介 本项目是一个基于Android平台的玩具租赁系统,旨在为用户提供一个便捷的玩具租赁服务。系统涵盖了用户注册、登录、玩具浏览、租赁、个人信息管理等功能,通过前后端分离的架构实现。 ## 项目的主要特性和功能 1. 用户管理 用户注册与登录支持通过昵称、手机号等多种方式进行注册和登录。 找回密码用户可以通过手机验证码找回密码。 个人信息管理用户可以修改个人信息,包括姓名、密码等。 2. 玩具租赁 玩具浏览用户可以浏览不同分类的玩具,查看玩具详情。 租赁功能用户可以选择玩具进行租赁,并查看租赁订单。 3. 搜索与推荐 搜索功能用户可以通过关键词搜索玩具。 推荐系统根据用户的历史行为推荐相关玩具。 4. 测试与集成 单元测试确保基础功能的正确性。 集成测试测试Spring Boot应用的上下文加载情况。
6个免费的所见即所得Markdown桌面编辑器的实用指南,用于在Windows平台上编写GitHub Readme.md文件(截至2024年9月)。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
# 基于Arduino IDE和Flutter的电动汽车充电监控系统 ## 一、项目简介 这是一个电动汽车充电监控项目,旨在通过Arduino IDE创建一个HTTP Web服务器,结合ESP32芯片、电源管理集成电路(IC)、电流和电压传感器,实现对电动汽车充电过程的实时监控和管理。同时,该项目还包括一个基于Flutter开发的移动应用,方便用户通过移动设备查看和控制充电过程。 ## 二、项目的主要特性和功能 1. HTTP Web服务器通过Arduino IDE创建HTTP Web服务器,实现与ESP32芯片的通信。 2. ESP32芯片连接WiFi,并作为中间设备连接电源管理集成电路(IC)、电流和电压传感器。 3. 远程监控与控制用户可以通过移动设备访问特定的网页,输入充电瓦数并提交,实现远程监控和控制充电过程。 4. Flutter应用项目中的Flutter应用提供了用户友好的界面,方便用户查看充电状态、调整充电参数等。