数据库规范案例有哪些类型,解释1道数据库规范化范式的例题
来源:整理 编辑:黑码技术 2024-08-22 11:06:05
本文目录一览
1,解释1道数据库规范化范式的例题
学号是主属性,姓名可以直接被学号给确定,学号可以确定学生所在的系,而系主任不是由主属性学号来确定的,是由系名来确定的,所以问题就在系主任上,在这个关系里学号和系主任之间不是直接确定的而是间接确定的,这就叫非主属性对主属性存在传递函数依赖,所以是2范式,1范式是把两个或几个事在一个关系里说,这个就是稍微好点,可以根据主码确定一个非主属性,还是间接的,所以是第2范式.
2,数据库有哪些类型
数据库通常分为:层次式数据库;网络式数据库;关系式数据库三种类型。模糊数据库 指能够处理模糊数据的数据库。一般的数据库都是以二直逻辑和精确的数据工具为基础的,不能表示许多模糊不清的 事情。随着模糊数学理论体系的建立,人们可以用数量来描述模糊事件并能进行模糊运算。这样就可以把不完全性、不确定性、模糊性引入数据库系统中,从而形成模糊数据库。模糊数据库研究主要有两方面,首先是如何在数据库中存放模糊数据;其次是定义各种运算建立模糊数据上的函数。模糊数的表示主要有模糊区间数、模糊中心数、模糊集合数和隶属函数等。 统计数据库 管理统计数据的数据库系统。这类数据库包含有大量的数据记录,但其目的是向用户提供各种统计汇总信息,而不是提供单个记录的信息。 网状数据库 处理以记录类型为结点的网状数据模型的数据库。处理方法是将网状结构分解成若干棵二级树结构,称为系。系类型 是二个或二个以上的记录类型之间联系的一种描述。在一个系类型中,有一个记录类型处于主导地位,称为系主记录类 型,其它称为成员记录类型。系主和成员之间的联系是一对多的联系。网状数据库的代表是dbtg系统。1969年美国的 codasyl组织提出了一份“dbtg报告”,以后,根据dbtg报告实现的系统一般称 为dbtg系统。现有的网状数据库系统大都是采用dbtg方案的。dbtg系统是典型的三级结构体系:子模式、模式、存储模式。相应的数据定义语言分别称为子模式定义语言ssddl,模式定义语言sddl,设备介质控制语言dmcl。另外还有数据操纵语言dml。 演绎数据库 是指具有演绎推理能力的数据库。一般地,它用一个数据库管理系统和一个规则管理系统来实现。将推理用的事实数据存放在数据库中,称为外延数据库;用逻辑规则定义要导出的事实,称为内涵数据库。主要研究内容为,如何有效地计 算逻辑规则推理。具体为:递归查询的优化、规则的一致性维护等。
3,数据库类型有哪几种
四种 模糊数据库 指能够处理模糊数据的数据库。一般的数据库都是以二直逻辑和精确的数据工具为基础的,不能表示许多模糊不清的 事情。随着模糊数学理论体系的建立,人们可以用数量来描述模糊事件并能进行模糊运算。这样就可以把不完全性、不确定性、模糊性引入数据库系统中,从而形成模糊数据库。模糊数据库研究主要有两方面,首先是如何在数据库中存放模糊数据;其次是定义各种运算建立模糊数据上的函数。模糊数的表示主要有模糊区间数、模糊中心数、模糊集合数和隶属函数等。 统计数据库 管理统计数据的数据库系统。这类数据库包含有大量的数据记录,但其目的是向用户提供各种统计汇总信息,而不是提供单个记录的信息。 网状数据库 处理以记录类型为结点的网状数据模型的数据库。处理方法是将网状结构分解成若干棵二级树结构,称为系。系类型 是二个或二个以上的记录类型之间联系的一种描述。在一个系类型中,有一个记录类型处于主导地位,称为系主记录类 型,其它称为成员记录类型。系主和成员之间的联系是一对多的联系。网状数据库的代表是dbtg系统。1969年美国的 codasyl组织提出了一份“dbtg报告”,以后,根据dbtg报告实现的系统一般称 为dbtg系统。现有的网状数据库系统大都是采用dbtg方案的。dbtg系统是典型的三级结构体系:子模式、模式、存储模式。相应的数据定义语言分别称为子模式定义语言ssddl,模式定义语言sddl,设备介质控制语言dmcl。另外还有数据操纵语言dml。 演绎数据库 是指具有演绎推理能力的数据库。一般地,它用一个数据库管理系统和一个规则管理系统来实现。将推理用的事实数据存放在数据库中,称为外延数据库;用逻辑规则定义要导出的事实,称为内涵数据库。主要研究内容为,如何有效地计 算逻辑规则推理。具体为:递归查询的优化、规则的一致性维护等。有Access mdb sybase db2 dat foxpro dbf sqlserver mdf mysql myd cloudscape
4,详细说明数据库规范的三个范式
第三范式的要求如下: 1,每一列只有一个值 2,每一行都能区分。 3,每一个表都不包含其他表已经包含的非主关键字信息。 实质上,设计范式用很形象、很简洁的话语就能说清楚。这里将对范式进行通俗地说明,以一个简单论坛的数据库为例讲解怎么样将这些范式应用于实际工程.范式说明 第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。 例如,符合第一范式: 字段1 字段2 字段3 字段4 不符合第一范式: 字段1 字段2 字段3 字段4 字段3.1 字段3.2 很显然,在当前的任何关系数据库管理系统(DBMS)中,傻瓜也不可能做出不符合第一范式的数据库,因为这些DBMS不允许你把数据库表的一列再分成二列或多列。因此,你想在现有的DBMS中设计出不符合第一范式的数据库都是不可能的。 第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。 假定选课关系表为SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分),关键字为组合关键字(学号, 课程名称),因为存在如下决定关系: (学号, 课程名称) → (姓名, 年龄, 成绩, 学分) 这个表不满足第二范式,因为存在如下决定关系: (课程名称) → (学分) (学号) → (姓名, 年龄) 即存在组合关键字中的字段决定非关键字的情况。 由于不符合2NF,这个选课关系表会存在如下问题: (1) 数据冗余:同一门课程由n个学生选修,"学分"就重复n-1次;同一个学生选修了m门课程,姓名和年龄就重复了m-1次。 (2) 更新异常:若调整了某门课程的学分,数据表中所有行的"学分"值都要更新,否则会出现同一门课程学分不同的情况。 (3) 插入异常:假设要开设一门新的课程,暂时还没有人选修。这样,由于还没有"学号"关键字, 课程名称和学分也无法记录入数据库。 (4) 删除异常: 假设一批学生已经完成课程的选修,这些选修记录就应该从数据库表中删除。但是,与此同时,课程名称和学分信息也被删除了。很显然,这也会导致插入异常。 把选课关系表SelectCourse改为如下三个表: 1).学生:Student(学号, 姓名, 年龄); 2).课程:Course(课程名称, 学分); 3).选课关系:SelectCourse(学号, 课程名称, 成绩)。 这样的数据库表是符合第二范式的,消除了数据冗余、更新异常、插入异常和删除异常。 另外,所有单关键字的数据库表都符合第二范式,因为不可能存在组合关键字。 第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在"A → B → C"的决定关系,则C传递函数依赖于A。因此,
5,什么是数据库实例
默认的实例名是跟机器名相同的。多个 SQL Server 实例Microsoft? SQL Server? 2000 支持在同一台计算机上同时运行多个 SQL Server 数据库引擎实例。每个 SQL Server 数据库引擎实例各有一套不为其它实例共享的系统及用户数据库。应用程序连接同一台计算机上的 SQL Server 数据库引擎实例的方式与连接其它计算机上运行的 SQL Server 数据库引擎的方式基本相同。有两种类型的 SQL Server 实例:默认实例SQL Server 2000 数据库引擎默认实例的运行方式与 SQL Server 早期版本的数据库引擎相同。默认实例仅由运行该实例的计算机的名称唯一标识,它没有单独的实例名。如果应用程序在请求连接 SQL Server 时只指定了计算机名,则 SQL Server 客户端组件将尝试连接这台计算机上的数据库引擎默认实例。这保留了与现有 SQL Server 应用程序的兼容性。一台计算机上只能有一个默认实例,而默认实例可以是 SQL Server 的任何版本。命名实例除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。应用程序必须提供准备连接的计算机的名称和命名实例的实例名。计算机名和实例名以格式 computer_name\instance_name 指定。一台计算机上可以运行多个命名实例,但只有 SQL Server 2000 数据库引擎才可作为命名实例运行。SQL Server 早期版本中的数据库引擎不能作为命名实例运行。实例主要应用于数据库引擎及其支持组件,而不应用于客户端工具。如果安装了多个实例,则每个实例都将获得各自唯一的一套:系统和用户数据库。SQL Server 和 SQL Server 代理服务。对于默认实例,服务名仍为 MSSQLServer 和 SQLServerAgent。对于命名实例,服务名改为 MSSQL$instancename 和 SQLAgent$instancename,使得这些服务与服务器上的其它实例分开启动和停止。可使用相关联的 SQL Server 服务启动和停止不同实例的数据库引擎。SQL Server 代理服务管理相关联的数据库引擎实例的调度事件。与数据库引擎、SQL Server 和 SQL Server 代理服务相关联的注册表键。使应用程序能连接特定实例的网络连接地址。问这个问题说明你对数据库的概念还不太了解,这是最基本的概念。数据库是什么?数据库是一个逻辑上的概念,简单的说就是相互关联的一会数据。而对应到实际的物理概念上,就是磁盘上的一个或者一堆文件,里边包含着数据。但是光有数据不行,数据库有很多功能,比如可以接受用户连接,给用户提供数据,这样就需要有“程序”。所以说关闭状态的数据库,就是磁盘上的程序文件,加上数据文件。想要使用数据库,就要把它打开,让上边说的“程序”运行起来。实例就是指计算机内存中处于运行状态的数据库程序,以及为这些程序分配的一些内存空间。实例是位于内存中的,只在数据库处于运行状态时才存在。实例负责实现给用户提供网络连接、读写数据文件等等各种功能。不同的数据库产品有些不同,oracle中一个实例只能连接一个逻辑上的“数据库”,甚至是不同机器上运行着的不同实例同时连接一个数据库(rac)。sqlserver和mysql中的“实例”则比较独立,可以随时打开或者关闭某一个数据库。
文章TAG:
数据 数据库 规范 案例 数据库规范案例有哪些类型