数据库管理系统的主要功能有:数据定义功能、数据 *** 纵功能、数据库的运行管理、数据库信息的接口和数据库的建立和维护功能。
1、数据定义功能:DBMS提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的数据对象进行定义。
2、数据 *** 纵功能:DBMS还提供数据 *** 纵语言(Data Manipulation Language,DML),用户可以使用DML *** 作数据,实现对数据库的基本 *** 作,如查询、插入、删除和修改等。
3、数据库的运行管理:数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。
4、提供方便、有效地存取数据库信息的接口和工具:编程人员可通过编程语言与数据库之间的接口进行数据库应用程序的开发。数据库管理员(Database Administrator,DBA)可通过提供的工具对数据库进行管理。
5、数据库的建立和维护功能:数据库功能包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监控、分析功能等。这些功能通常是由一些程序来完成。
数据库管理系统的结构
1、外部层(External Level)或称观点层(View Level):包括数个外部纲要(External Schema)或用户观点(User Views),每个外部纲要描述了特定族群有兴趣的部分数据库并对该族群隐藏剩下的部分,如同概念层,每个外部纲要一般使用表达性资料模型(Representational Data Model)实现。
2、概念层(Conceptual Level):包含了概念纲要(Conceptual Schema),概念纲要描述了整个用户社群的数据库结构,其隐藏了实际存储资料的结构并专注于描述实体(Entity)、资料类型(Data Type)、关系(Relationships)、用户 *** 作(User Operations)以及限制(Constraints)。通常数据库系统被实现时,表达性资料模型也被用于描述概念纲要。
3、内部层(Internal Level):内有内部纲要(Internal Schema),内部纲要描述的是实际存储资料的结构,其使用实体资料模型(Physical Data Model)并详细描述数据库的资料存储(Data Storage)及访问路径(Access Path)。
有的时候因为掉电或者其他原因导致数据库损坏,我们可以使用mysql自带的mysqlcheck命令来快速修复所有的数据库或者特定的数据库;例如
检查优化并修复所有的数据库用:
#mysqlcheck-A-o-r-p
Enterpassword:
database1OK
database2OK
----------
修复指定的数据库用
#mysqlcheck-A-o-rDatabase_NAME-p
即可
另外如果只是对某个表进行修复可以用:myisamchk或isamchk
其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用:
myisamchktablenameMYI
进行检测,如果需要修复的话,可以使用:
myisamchk-oftablenameMYI
关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。
另外可以把下面的命令放在你的rclocal里面启动MySQL服务器前:
[-x/tmp/mysqlsock]&&/pathtochk/myisamchk-of/DATA_DIR//MYI
其中的/tmp/mysqlsock是MySQL监听的Sock文件位置,对于使用RPM安装的用户应该是/var/lib/mysql/mysqlsock,对于使用源码安装则是/tmp/mysqlsock可以根据自己的实际情况进行变更,而pathtochk则是myisamchk所在的位置,DATA_DIR是你的MySQL数据库存放的位置。
1,简单的修复模式
myisamchk-r-qpath/数据库/坏表MYI
注:-r----恢复模式-q----快速修复
2,使用安全修复模式
myisamchk--safe-recoverpath/数据库/坏表MYI
3,困难的修复模式
如果在索引文件的第一个16K块被破坏,或包含不正确的信息,或如果索引文件丢失,你只应该到这个阶段。在这种情况下,创建一个新的索引文件是必要的。按如下这样做:
把数据文件移更安全的地方。
使用表描述文件创建新的(空)数据和索引文件:
shell>mysqldb_name
mysql>DeleteFROMtbl_name;
mysql>quit
将老的数据文件拷贝到新创建的数据文件之中。(不要只是将老文件移回新文件之中;你要保留一个副本以防某些东西出错。)
回到阶段2。现在myisamchk-r-q应该工作了。(这不应该是一个无限循环)。
4,非常困难的修复模式
只有描述文件也破坏了,你才应该到达这个阶段。这应该从未发生过,因为在表被创建以后,描述文件就不再改变了。
从一个备份恢复描述文件并且回到阶段3。你也可以恢复索引文件并且回到阶段2。对后者,你应该用myisamchk-r启动。
如果你没有一个备份但是确切地知道表是怎样被创建的,在另一个数据库中创建表的一个拷贝。删除新的数据文件,然后从其他数据库将描述和索引文件移到破坏的数据库中。这给了你新的描述和索引文件,但是让数据文件独自留下来了。回到阶段2并且尝试重建索引文件。
5,优化表结构
myisamchk-r表
也可以使用sql语句来优化OPTIMIZETABLE
本方法参考自mouse博客
/// <summary>
/// 检查要上传的文件是否存在,并保存在FileUpload目录中,返回上传的虚拟路径,如:(~//jpg)
/// </summary>
/// <param name="FileUpload">上传控件</param>
/// <param name="strDir">在FileUpload文件夹下的目录名,想要保存文件路径,如: Project/News </param>
/// <returns></returns>
public static string CheckFileAndSave(FileUpload fupFile, string strDir)
{
//文件存在时建立的新文件名
string strFileName = SystemIOPathGetFileName(fupFileFileName);//文件名
//string strFileExtent = SystemIOPathGetExtension(fupFileFileName)ToLower();//文件扩展名
String strFilePath = stringEmpty;//用于保存最终的返回路径
try
{
if (fupFileHasFile)
{
//检查目录是否存在,不存在则创建
string str_FilePath = StringFormat("~/Road/FileUpload/{0}/", strDir);
if (!SystemIODirectoryExists(>
以上就是关于数据库管理系统的功能是什么啊全部的内容,包括:数据库管理系统的功能是什么啊、数据库损坏了怎么办、C#.NET上传文件的保存等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)