1700416120
1700416121
如果是直接从编写的应用程序中读写数据文件,那么就会导致用户可以录入在主键上含有相同值的记录,或者由于没有进行参照完整性等方面的检查,使用户可以任意地执行删除数据之类的操作。而DBMS却能在这种问题上直到防患于未然的作用,确实是一种很方便的工具
1700416122
1700416123
1700416124
1700416125
1700416127
计算机是怎样跑起来的 8.6 索引能够提升数据的检索速度
1700416128
1700416129
可以在表的各个字段上设置索引(Index),这也是DBMS所具备的功能之一。虽然索引和键这两个概念容易让人混淆,但其实两者是完全不同的。索引仅仅是提升数据检索和排序速度的内部机制。一旦在字段上设置了索引,DBMS就会自动为这个字段创建索引表(如图8.12所示)
1700416130
1700416131
图8.12 设置索引
1700416132
1700416133
1700416134
1700416135
1700416136
索引表是一种数据结构,存储着字段的值以及字段所对应记录的位置。例如,如果在顾客表姓名字段上设置了索引,DBMS就会创建一张索引表(如图8.13所示)
1700416137
1700416138
图8.13 如果字段上有索引就可以缩短检索时间
1700416139
1700416140
1700416141
1700416142
1700416143
表中有两个字段,分别存储着顾客姓名和位置(所对应的记录在数据文件中的位置)。与原来的顾客表相比,索引表中的字段数更少,所以可以更快地进行数据的检索和排序。当查询数据时,DBMS先在索引表中进行数据的检索和排序,然后再根据位置信息从原来的数据表中把完整的记录取出来。索引所引起的就是“目录”的作用。与图书的目录一样,数据库的索引也是一种能够高效地查找目标数据的机制
1700416144
1700416145
既然索引能够提升检索和排序的速度,那么在所有表的所有字段上都加上索引不就好了吗?实际上不能这样做,因为一旦设置了索引,每次向表中插入数据时,DBMS都必须更新索引表。提升数据检索和排序速度的代价就是插入或更新数据速度的降低。因此,只有对那些要频繁地进行检索和排序的字段,才需要设置索引。在酒铺数据库这个例子中,只需要在顾客表的顾客姓名字段和商品表的商品名称字段上设置索引就足够了。如果表中充其量也就只有几千条记录,那么即使完全不使用索引,也不会感到检索或排序速度有多慢
1700416146
1700416147
1700416148
1700416149
1700416151
计算机是怎样跑起来的 8.7 设计用户界面
1700416152
1700416153
只要通过拆分表实现了规范化,设置了主键和外键,确保没有多对多关系,根据需要设置了参照完整性和索引,那么数据库的设计就告一段落了。接下来就该进入为了利用数据库中的数据而编写数据库应用程序的阶段了。只要数据库设计好了,设计一个带有用户界面的、能够操作其中数据的应用程序就很轻松了。在设计系统时,请记住一个重要顺序:优先设计数据库,然后再设计用户界面
1700416154
1700416155
对数据库进行的操作的种类通常称为CRUD。CRUD由以下四种操作的英文名称的首字母组成,即记录的插入(Create)、获取(Refer)、更新(Update)、删除(Delete)。数据库应用程序只要能够对记录进行CRUD的操作就可以了。当然,为了满足用户的需求,为应用程序相应地增加统计、打印等功能的情况也是存在的。
1700416156
1700416157
由于DBMS具有自动生成主键和外键上的值的功能,所以在设计用户界面时,需要显示其余的字段,并要使CRUD操作能够通过按钮和菜单来完成
1700416158
1700416159
图8.14展示了一个用四个按钮分别进行CRUD操作的例子
1700416160
1700416161
图8.14 能够进行CRUD操作的用户界面示例
1700416162
1700416163
1700416164
1700416165
1700416166
对于购买了多种商品的顾客,还可以通过“上一条”、“下一条”按钮交替地在界面上显示每种商品的名称、单价和销售量。请注意一点,虽然数据被拆分成三个表存放,但透过应用程序,用户感到他所处理的是一个相关数据的集合。界面中所显示的数据,是从三张表中用顺藤摸瓜的方式取出来的
1700416167
1700416168
1700416169
[
上一页 ]
[ :1.70041612e+09 ]
[
下一页 ]