‘壹’ 如何学习数据库知识
好像武侠小说里边说的:“你的招式忘了没有?”,回答:“差不多忘了”,“忘了就好”。
这与数据库编程有什么关系?关系可大了。同志们学过Pascal、BASIC、C(C++)没有?如果没有,FOXBASE、FOXPRO应该学过吧?按以上这些语言编程,都是过程化的,说白一点就是一个数据一个数据、一条记录一条记录去处理(FOXBASE、FOXPRO不完全这样,但书上也经常是这样介绍的),当初我接触ACCESS
97时,一下子没有了IF、FOR这些语句(指数据处理),都用sql语句,真是找不到北了,好在我学SQL语言时,也尽量忘掉这个IF、FOR,到我忘得差不多时,功夫也进了一大步,原来要编一大段程序,现在一两条SQL语句搞定,就算用多几条SQL语句,由于是在图形界面下做,可视化操作,拉拉扯扯,再修改一下生成的SQL语句,也就省事多了。
由于ACCESS具备完整的SQL语言(FOXBASE没有、FOXPRO不完整),我从ACCESS
97开始用ACCESS编程,到现在为止,DAO、ADO很少用,加上最近从爱赛思上接触的一些技术,基本上不用DAO、ADO都可以了,可以从我的“未完工的库存管理”中看出,只是在特殊情况下才偶尔用一下。(少用,但不是不用,还得学,不要误解)
如何学好数据库编程?下面介绍一下本人的一些经验,仅供参考:
1.首先要把原来一个数据一个数据、一条记录一条记录的数据处理方式忘掉,越彻底越好。
现在用成批处理了。少用记录集一条记录一条记录地处理,尽量用SQL语句。
2.学好关系数据库的理论,尤其是规范化理论,表的设计一定要规范化,最起码要规范化到第三范式。集合运算(并、交、差)。关系运算(选择、投影、连接)。其中连接与规范化是紧密结合的。
3.运用面向对象的技术:面向对象的分析OOA、面向对象的设计OOD、面向对象的编程OOP,根据表的关系,用窗体和子窗体、报表和子报表,仿真面向对象,这样可以增加程序的可读性和可维护性。(这是高级技术,同志们不要轻视,做大项目你就知道有用了)
4.用查询时,通常一步做不出来,可以分几步做,本人通常是这么做的,从我给网友回复的例子中也可以看得出。为什么要这样做?(1)有些是SQL语言的限制,没办法一步做出来,逼的;(2)可以检查每一步查询的结果,容易调试;(3)增加可读性,便于日后维护。
5.查询的结果用窗体显示或用报表打印,两者的技术差不多。通常改变打开窗体或报表的条件就可控制显示或打印的记录范围。另外用查询做数据源时,动态改变查询中的SQL语句,比在查询中引用窗体的控件要方便,因为SQL语句生成是在VBA中,可以先存放在字符变量中,然后再更新查询的SQL语句,这样就可以用断点来检查变量值对不对,如果在查询中引用窗体的控件,尤其是包含IIF()函数时,调试是很困难的。
6.开发一个系统,首先要解决技术问题,即算法,用简单例子,把算法弄懂了,再详细设计,这一点从网友的提问中可以看出,有很多人问题表达不清楚,有的人其中夹了很多与算法无关的东西,尤其是很专业的东西,别人不容易看得明白,由于算法没搞清楚,程序就无法编了。
7.不要使用过多的工具特性,使用过多的工具特性会使可读性降低,可维护性差,要别人帮忙时难以得到帮助,更要命的是可移植性差,从MDB到ADP就可以体会到了,所以在编程时可读性很重要,可移植性更重要,你甘心自己的程序就固定在一个环境下运行吗?你甘心永远用一个工具搞开发吗?为了你的“钱途”,不要玩弄太多的技巧,当然技术研究是另外一码事。
‘贰’ 数据库表的设计
用户表:{用户编号(PK),用户名,密码,用户类别, 所属专业号(FK)}
课程表:{课程编号(PK),课程名,用户编号(FK) ,学分}
院 系:{院系编号(PK),院名}
专 业:{专业号(PK),专业名称 ,专业简介 ,总学时,所属院号(FK)}
参考书:{索书号(PK),课程编号(FK),ISBN/ISSN,责任者,出版日期,校图书馆连接地址,电子书连接地址}
专业课程表{专业号,课程编号} 联合主键
‘叁’ 求数据库程设计员工培训系统的源代码,要求是用sql写的,比较全面的,能在sql server中运行的
不可以的,已经转换为了机器指令,不能恢复为源程序的
有的反编译软件,其实只能恢复标准控件的语句,实际的用户写的根本无法恢复
‘肆’ 大数据量的数据库表设计技巧
大数据量的数据库表设计技巧
即使是一个非常简单的数据库应用系统,它的数据量增加到一定程度也会引起发一系列问题。如果在设计数据库的时候,就提前考虑这些问题,可以避免由于系统反映迟缓而引起的用户抱怨。
技巧1:尽量不要使用代码。比如性别这个字段常见的做法:1代表男,0代表女。这样的做法意味着每一次查询都需要关联代码表。
技巧2:历史数据中所有字段与业务表不要有依赖关系。如保存打印发票的时候,不要只保留单位代码,而应当把单位名称也保存下来。
技巧3:使用中间表。比如职工工资,可以把每一位职工工资的合计保存在一张中间表中,当职工某一工资项目发生变化的时候,同时对中间表的数据做相应更新。
技巧4:使用统计表。需要经常使用的统计数据,生成之后可以用专门的表来保存。
技巧5:分批保存历史数据。历史数据可以分段保存,比如2003年的历史数据保存在 《2003表名》中,而2004年的历史数据则保存在《2004表名》中。
技巧6:把不常用的数据从业务表中移到历史表。比如职工档案表,当某一职工离开公司以后,应该把他的职工档案表中的信息移动到《离职职工档案表》中。
1、经常查询的和不常用的分开几个表,也就是横向切分
2、把不同类型的分成几个表,纵向切分
3、常用联接的建索引
4、服务器放几个硬盘,把数据、日志、索引分盘存放,这样可以提高IO吞吐率
5、用优化器,优化你的查询
6、考虑冗余,这样可以减少连接
7、可以考虑建立统计表,就是实时生成总计表,这样可以避免每次查询都统计一次
8、用极量数据测试一下数据
速度,影响它的因数太多了,且数据量越大越明显。
1、存储将硬盘分成NTFS格式,NTFS比FAT32快,并看你的数据文件大小,1G以上你可以采用多数据库文件,这样可以将存取负载分散到多个物理硬盘或磁盘阵列上。
2、tempdbtempdb也应该被单独的物理硬盘或磁盘阵列上,建议放在RAID0上,这样它的性能最高,不要对它设置最大值让它自动增长
3、日志文件日志文件也应该和数据文件分开在不同的理硬盘或磁盘阵列上,这样也可以提高硬盘I/O性能。
4、分区视图就是将你的数据水平分割在集群服务器上,它适合大规模OLTP,SQL群集上,如果你数据库不是访问特别大不建议使用。
5、簇索引你的表一定有个簇索引,在使用簇索引查询的时候,区块查询是最快的,如用between,应为他是物理连续的,你应该尽量减少对它的updaet,应为这可以使它物理不连续。
6、非簇索引非簇索引与物理顺序无关,设计它时必须有高度的可选择性,可以提高查询速度,但对表update的时候这些非簇索引会影响速度,且占用空间大,如果你愿意用空间和修改时间换取速度可以考虑。
7、索引视图如果在视图上建立索引,那视图的结果集就会被存储起来,对与特定的查询性能可以提高很多,但同样对update语句时它也会严重减低性能,一般用在数据相对稳定的数据仓库中。
8、维护索引你在将索引建好后,定期维护是很重要的,用dbccshowcontig来观察页密度、扫描密度等等,及时用dbccindexdefrag来整理表或视图的索引,在必要的时候用dbccdbreindex来重建索引可以受到良好的效果。
不论你是用几个表1、2、3点都可以提高一定的性能,5、6、8点你是必须做的,至于4、7点看你的需求,我个人是不建议的。
‘伍’ vfp中表格设计器和数据库设计器的功能。力求详细。
其实只要你打开数据库设计器就一目了然了。如下图:
功能分字段设计、索引设计、表设计,主要是字段设计,可用操作是插入、删除、确定、取消。
字段名即关系的属性名或表的列名。长度:自由表1~10,库表1~128个字符。
规则:1.必须以字母或汉字开头 2.由字母、汉字、数字和下划线组成 3.中间不能含空格
可选择的类型和宽度如下表:
字符型 可选
货币型 8
数值型 可选
浮点型 可选
日期型 8
日期时间型 8
双精度型 8
整型 4
逻辑型 1
备注型 4
通用型 4
字符型(二进制) 可选
备注型(二进制) 4
表的空值NULL选项
表示是否允许字段为空值。空值就是缺值或非确定值。它与空(或空白)字符串、数值0等都具有不同的含义。允许暂缺的字段值,需要与0区别的“0”值字段应允许为空值,而作为关键字的字段不能允许为空值。
如果是库表,还可显示显示组框,组框包括:
•格式:实质上是一个输出掩码,决定了输出风格。•输入掩码:用以限制或控制用户输入的格式。•标题:用于字段显示时的标题,可使界面更友好,编程更简捷。•字段注释:便于日后或他人维护数据库。•规则:有效性表达式,以判断是否有效。•信息:当有效性表达式为假时显示的信息。
够详细了吧,不懂再问。
‘陆’ 数据库考试的论述题:请描述利用表设计器设计表的基本步骤。
用表设计器设计一个表,一般需要以下步骤
1、先要确定表中有哪些字段,并输入
2、确定该字段是哪个数据类型,并设计好该字段的相关属性
3、可以给字段加上必要的说明,以便于理解和查阅
保存所做的工作就ok了
‘柒’ 数据库表和自由表的表设计器有什么区别,说明了什么问题
数据库表是你在数据库基础上设计表,一般是用数据库管理工具手工创建的
自由表的表设计器是指专门设计数据表结构的软件,在外部设计好,理清各个表的结构和关联
一般比较大的系统或数据结构比较复杂的都要用自由表的表设计器设计好后在手工创建!!!
‘捌’ oracle数据库管理培训
Oracle数据库管理专题
时间主要授课内容
第一单元
内容一:简介(数据库体系结构)描述课程目标研究 Oracle 10g 数据库体系结构
内容二:安装 Oracle 数据库软件解释 DBA 核心任务和工具 计划 Oracle 安装 使用最佳的灵活的体系结构 使用 Oracle Universal Installer (OUI) 安装软件
内容三:创建 Oracle 数据库使用数据库配置助手 (DBCA) 创建数据库 使用 DBCA 创建数据库设计模板 使用 DBCA 生成数据库创建脚本
内容四:管理 Oracle 例程启动和停止 Oracle 数据库及组件 使用 Oracle Enterprise Manager (EM) 使用 SQL*Plus 和 iSQL*Plus 访问数据库 修改数据库初始化参数 了解数据库启动阶段 查看预警日志 使用数据字典
内容五:使用RMAN工具RMAN使用及维护
第二单元
内容一:使用简单的SELECT语句SELECT语句的语法检索出来的数据排序用WHERE设置检索条件GROUP BY和HAVING使用子查询 连接查询
内容二:oracle 11g中支持的数据类型Oracle 11g中数据类型介绍
内容三:视图解释视图的概念使用数据字典视图生成简单和复杂的视图生成带约束选项的视图 修改视图
内容四:相关的DDL和DML语句使用DDL语句使用DML语句
内容五:实现数据完整性1.主键约束 2.外键约束3.CHECK 4.UNIQUE5.NOT NULL
内容六:oracle内置函数介绍使用函数的基本概念在SELECT语句中使用的各种字符,数字,日期函数说明转换函数的定义及使用介绍其他常用函数
第三单元
内容一:视图解释视图的概念使用数据字典视图生成简单和复杂的视图生成带约束选项的视图修改视图
内容二:存储过程解释存储过程的概念存储过程分类 自定义存储过程存储过程中的参数传递
内容三:触发器解释触发器的概念及作用触发器的分类实现触发器
内容四:事务和锁1、事务的类型及机制2、事务分类3、实现事务4、锁的类型及使用
内容五:游标游标简介 使用游标
第四单元
内容一:管理数据库存储结构描述表数据存储(以块为单位) 定义表空间和数据文件的用途 了解和使用 Oracle Managed Files (OMF) 创建和管理表空间 5、获取表空间信息 描述自动存储管理 (ASM) 的主要概念和功能
内容二:管理用户安全性创建和管理数据库用户帐户 对用户进行验证 分配默认的存储区(表空间)授予权限和撤消权限创建和管理职责 创建和管理配置文件 实施标准口令保护功能 控制用户对资源的使用
内容三:管理方案对象定义方案对象和数据类型 创建和修改表 3、定义约束条件 查看表的列和内容 创建索引、视图和序号 解释临时表的用途 使用数据字典
第五单元
内容一:管理数据和并发处理能力通过 SQL 管理数据 确定和管理 PL/SQL 对象描述触发器和触发事件监控和解决锁冲突
内容二:管理撤消数据解释 DML 和撤消数据生成 监控和管理撤消 描述撤消数据和重做数据之间的区别 配置撤消保留 保障撤消保留 使用撤消 Advisor
内容三:实施 Oracle 数据库安全性描述 DBA 安全性责任 应用最少权限原则 启用标准数据库跟踪 指定跟踪选项 复查跟踪信息 维护跟踪线索
第六单元
内容一:配置 Oracle Network 环境使用 Oracle 11G Enterprise Manager 配置 Oracle Network 环境 创建其它监听程序 创建 Oracle Net Service 别名 配置连接时故障转移 控制 Oracle Net Listener 测试 Oracle Net 的连接性 确定何时使用共享服务器和专用服务器
内容二:积极维护1、使用统计数据 2、描述指导框架3、管理自动工作量资料档案库 (AWR) 4、使用自动数据库诊断监控程序 (ADDM) 设置预警阈值 使用服务器生成的预警 使用自动任务
内容三:性能管理使用 Oracle Enterprise Manager 页监控性能 使用 SQL Tuning Advisor 使用 SQL Access Advisor 使用共享内存的自动管理 使用内存 Advisor 设置内存缓冲区的大小 使用与性能相关的动态视图 排除无效或不可用的对象中的故障
第七单元
内容一:备份和恢复的概念确定 Oracle 数据库中可能出现的错误类型 描述优化例程恢复的方法 确定检查点、重做日志文件和归档日志文件的重要性 配置 ARCHIVELOG 模式
内容二:执行数据库备份创建一致的数据库备份 在不关闭数据库的情况下进行备份 创建增量备份 自动数据库备份 监控快速恢复区
内容三:执行数据库恢复恢复丢失的控制文件 恢复丢失的重做日志文件 在数据文件丢失后执行完全恢复
内容四:执行FlashBack描述闪回数据库 使用闪回表将表内容还原到过去的某一特定时间点恢复已删除的表使用闪回查询查看截至任意时间点的数据库内容 使用闪回版本查询查看一段时间内的行版本 使用闪回事务处理查询查看行的事务处理历史记录
内容五:移动数据描述移动数据的可用方法 创建和使用目录对象 使用 SQL*Loader 从 Oracle 数据库(或用户文件)中装入数据 解释数据泵的通用体系结构 使用数据泵的导出和导入功能在 Oracle 数据库之间移动数据 使用外部表并通过平台独立文件移动数据
内容六:数据库应用在java中连接oracle:JDBC与ODBC使用与连接 介绍一个数据库设计的实例
‘玖’ 数据库表设计器怎么打开
如果是打开数据库(.DBC)设计器命令是
MODIFY DATABASE [DatabaseName | ?] [NOWAIT] [NOEDIT]
如果是打开数据表(.DBF)设计器命令是
MODIFY STRUCTURE