1.如何为数据库取名
在数据库中创建对象时,管理员也要对其进行取名。
现在谈谈取名的一些技巧。 一、表名大小写的控制 一般情况下Oracle数据库中的表名或者列名是不区分大小写的。
在创建表或者列的时候,即使管理员采用了小写的名字,数据库在将其保存到数据字典之前,会先将其转换为大写,再将他们保存到数据字典中。这也就是为什么我们取名使用小写的子母取名,但是下次查看表的名字的时候,却变成了大写。
虽然说Oracle数据库中表与列等数据库对象对于大小写是不敏感的,但是如果数据库管理员确实有需要要让数据库系统对表的名字区分大小写,这也是可以做到的。通常情况下,如果把名字使用双引号括起来,则在Oracle数据字典中就会成为区分大小写的名字。
不过笔者这里要提醒各位数据库管理员,虽然说从技术上可以让数据库系统强制取分大小写,但是在实际工作中,包括在内的绝大部分数据库管理员可能都不建议这么做。因为如果有混合的大小写存在,那么在引用这些表或者列名称的时候就需要特别的小心。
因为即使用户或者数据库管理员有着过目不忘的本领,也很难准确的记住这些名称的大小写歌时。如果数据库管理员硬要这么做的话,那么很可能是自寻烦恼。
在查询时或者其他作业时,要严格区分大小写那是一件很头疼的事情。为此,对于这个大小写的控制,笔者建议数据库管理员要谨慎使用。
除非有充分的理由,否则的话,不要轻易使用这个双引号来控制大小写。 这个双引号不仅可以用来控制大小写,还有一个比较特殊的作用,就是用引用一些特殊的字符。
如在建立表格的时候,需要设置一个名牌号的字段。有些数据库管理员习惯使用num#类似的名称。
这不会违反数据库的取名规则。不过在处理的时候会比较麻烦。
如利用create语句建立表格的时候,需要给这个字段名称加上双引号。否则的话,执行这条语句的时候,数据库会拒绝执行并向用户提示错误信息。
类似的特殊符号还包括一个$美元符号。他们在建立表格的时候,在语句中都需要使用双引号。
不过字段建立好之后,在引用这些对象的时候,不需要使用双引号了。同理,虽然Oracle数据库支持这些特殊符号,但是笔者不鼓励数据库管理员在表或者列的取名中采取这些特殊的符号。
这有可能给后续的引用带来不必要的麻烦。 二、牢记取名空间 在Oracle数据库中,跟其他的数据库不同,有一个叫做取名空间的概念。
在同一个取名空间中,其名字不可以重复。如表与视图就共享同一个取名空间,为此就要求不仅表的名字不能够相同,而且表的名字与视图的名字也不能够相同。
因为他们处于同一个取名空间。类似的,表与函数也是同处于一个表空间,为此他们也不能够同名。
不过表与索引、表与约束等等却属于不同的取名空间。也就是说,表的名字可以与约束的名字相同。
所以说,数据库管理员在给表等对象取名的时候,一定要了解哪些对象共享同一个名称空间。如果在同一个名称空间内的,即使对象不同(如视图与表),但是他们仍然不能够取相同的名字。
为了避免同一个取名空间内重名的现象,笔者建立在取名的时候最好能够根据对象的不同加上对象的固有前缀。如大部分的数据库管理员,在给表取名的时候,一般不会表名前面加上表对象的前缀。
但是在定义函数或者视图对象的时候,则会加上前缀。如在函数前面可能会加上FN的前缀,而在视图前面可能会加上vi的前缀。
如此的话,在同一个取名空间内也不用担心对象重名的问题。不过无论怎么说,这个取名空间的概念数据库管理员必须牢记。
即使在实际的工作中,可以通过前缀等手段轻易的避免这个陷阱,但是在Oracle数据库管理员的认证考试中,这个取名空间也是一个必要的知识点。所以无论从实际的工作还是认证考试的需要,对于这个取名空间管理员都必须要有一个清晰的认识。
三、在表、索引、约束、列之间设置密切的联系 在创建表的同时,可以给表中的某些列添加索引、约束等等。如在员工信息表中,会设置员工编号唯一性约束。
在创建约束的时候,也需要对约束进行取名。虽然说也约束与表、列不属于同一个取名空间,所以在取名的时候基本上没有限制。
但是为了后续使用的方便,笔者对约束的取名还有一个小小的建议。简单的说,就是给一个与表直接有关的其他对象具有该表的名字是一种好的做法。
如现在有一张用户表名字叫做ad_user(在表名前面一般不加对象名,但是可以根据应用软件的模块设计加上模块的前缀),这种表中有一个字段叫做叫做vlaue,用来存储员工的编号。在表设计的时候,需要给这个字段加一个索引。
那么这个索引的名字就可以取名为IDX_USER_VALUE(也就是索引前缀+表名+字段名的形式)。这么做有什么好处呢?一是可以确保相关对象的名字不会重复。
因为表的名字不会重复,所以将表的名字与列的名字一起组成某个对象的名字,那么其重复的几率可以说基本上没有。二是方便管理员阅读、理解、维护等等。
一看到索引或者约束对象的名字时,就可以看到这个是索引或者约束是用在哪个表的那个字段上的。而且也可以知道这个约束是唯一性约束还是检查约束;索引时主键索引还是外键。
2.列出10种中文数据库名称,并简要注明其资源特点(每一数据库不超过
常用数据库
1. IBM 的DB2
作为关系数据库领域的开拓者和领航人,IBM在1997年完成了System R系统的原型,1980年开始提供集成的数据库服务器—— System/38,随后是SQL/DSforVSE和VM,其初始版本与SystemR研究原型密切相关。DB2 forMVSV1 在1983年推出。该版本的目标是提供这一新方案所承诺的简单性,数据不相关性和用户生产率。1988年DB2 for MVS 提供了强大的在线事务处理(OLTP)支持,1989 年和1993 年分别以远程工作单元和分布式工作单元实现了分布式数据库支持。最近推出的DB2 Universal Database 6.1则是通用数据库的典范,是第一个具备网上功能的多媒体关系数据库管理系统,支持包括Linux在内的一系列平台。
2. Oracle
Oracle 前身叫SDL,由Larry Ellison 和另两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979 年,Oracle公司引入了第一个商用SQL 关系数据库管理系统。Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。
3. Informix
Informix在1980年成立,目的是为Unix等开放操作系统提供专业的关系型数据库产品。公司的名称Informix便是取自Information 和Unix的结合。Informix第一个真正支持SQL语言的关系数据库产品是Informix SE(StandardEngine)。InformixSE是在当时的微机Unix环境下主要的数据库产品。它也是第一个被移植到Linux上的商业数据库产品。
4. Sybase
Sybase公司成立于1984年,公司名称“Sybase”取自“system”和 “database” 相结合的含义。Sybase公司的创始人之一Bob Epstein 是Ingres 大学版(与System/R同时期的关系数据库模型产品)的主要设计人员。公司的第一个关系数据库产品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 数据库体系结构的思想,并率先在Sybase SQLServer 中实现。
5. SQL Server
1987 年,微软和 IBM合作开发完成OS/2,IBM 在其销售的OS/2 ExtendedEdition 系统中绑定了OS/2Database Manager,而微软产品线中尚缺少数据库产品。为此,微软将目光投向Sybase,同Sybase 签订了合作协议,使用Sybase的技术开发基于OS/2平台的关系型数据库。1989年,微软发布了SQL Server 1.0 版。
6. PostgreSQL
PostgreSQL 是一种特性非常齐全的自由软件的对象——关系性数据库管理系统(ORDBMS),它的很多特性是当今许多商业数据库的前身。PostgreSQL最早开始于BSD的Ingres项目。PostgreSQL 的特性覆盖了SQL-2/SQL-92和SQL-3。首先,它包括了可以说是目前世界上最丰富的数据类型的支持;其次,目前PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统.
7.mySQL
mySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
3.国内知名企业使用的数据库名称,能否例举几个
数据库?一般大企业都是使用oracle,因为oracle的安全性是最高的,基本上所有银行,运营商都是选择它。比如
电商多半会选择Mysql,因为电商需要考虑更多的是并发压力,在多个数据库集群的情况下,oracle的价格太高了。而Mysql作为开源数据库,从成本上有最大优势,比如人人网,还有现在基本上所有的团购网站都是用Mysql。
中型企业用SQL Server比较多,因为这类型企业一般不考虑开源数据库的,从价格上来说,SQLServer又比oracle优惠太多。
不过从网站上,基本上是看不到数据库的样子的。
4.所指定的名称与现有数据库重名
因为你要附加的库的名称和已有的库同名,改个名就行了
CREATE DATABASE [重命名数据库名] ON
( FILENAME = N'D:tmp.mdf' ),
( FILENAME = N'D:tmp_log.ldf' )
FOR ATTACH
--------------------
你图片里面,“附加为”后面随便起名字
或者在已有的库上右键-〉重命名,来对原有的库改名
5.企业数据表:企业名称、企业性质、企业产品、联系人、通信地址等设
设计数据库关键是要满足第三范式
(1)一个单元格只能一个数据
(2)需要有非复合的主键
(3)不能有和非主键有直接关系的键
就这三个条件分析:
(1)一个企业可能有多个联系人且联系方式不同,所以需要另外建表。
(2)企业名称就是非复合主键,所以这个条件满足。
(3)所有键都是和主键有直接关系,所以这个条件也满足。
结论:用三个表
企业:企业名称#、企业性质、企业代码、企业规模、企业简介、企业产品
联系人:联系人#、通信地址、邮政编码、联系电话、电子邮箱
企业_联系人:企业名称,联系人
当然如果一个单元格要放多种企业产品的话,那么就要把企业表再次分拆成“企业”和“企业_产品”两个表,以此类推。
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.qiming5.com/gsqm/15239.html