定义1
严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。 JMartin给数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。
定义2
数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。
定义3
(伯尔尼公约议定书专家委员会的观点) 所有的信息(数据率档)的编纂物,不论其是以印刷形式,计算机存储单元形式,还是其它形式存在,都应视为“数据库”。 数字化内容选择的原因有很多,概括起来主要有: (1)存储空间的原因。数字化的产品是通过网络被广大用户存取利用,而大家都知道数字化产品是存放在磁盘阵列上的,磁盘阵列由服务器来管理,磁盘空间是有限的,服务器的能力也是有限的,不可能无限量地存入数字资源,这就需要我们对文献资源数字化内容进行选择。 (2)解决数字化生产高成本和图书馆经费有限性之间矛盾的需要。几乎没有图书馆有充足的资源来对整个馆藏进行数字化,内容选择不可避免。 (3)数字资源管理的需要。技术的快速发展使数字化项目所生成的数字资源的生命周期越来越短,投入巨资进行数字迁移是延长数字资源生命的1个重要途径,昂贵的维护成本就必须考虑数字化的内容选择。 数据库发展史数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。三十多年来,国内外已经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活的基础设施。同时,随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也已经大大地拓广和深化了。30年间数据库领域获得了三次计算机图灵奖(CW Bachman,EFCodd, JGray),更加充分地说明了数据库是一个充满活力和创新精神的领域。就让我们沿着历史的轨迹,追溯一下数据库的发展历程。 传统上,为了确保企业持续扩大的IT系统稳定运行,一般用户信息中心往往不仅要不断更新更大容量的IT运维软硬件设备,极大浪费企业资源;更要长期维持一支由数据库维护、服务器维护、机房值班等各种维护人员组成的运维大军,维护成本也随之节节高升。为此,企业IT决策者开始思考:能不能像拧水龙头一样按需调节的使用IT运维服务?而不是不断增加已经价格不菲的运维成本。
定义4
数据库(DataBase,DB)是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。她是一个按数据结构来存储和管理数据的计算机软件系统。数据库的概念实际包括两层意思: (1)数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。 (2)数据库是数据管理的新方法和技术,他能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。
数据虽然完全相同,但是的两个数据库实例的COLLATE设置不同,两者不兼容。这种情况通常出现在与临时表进行连接的时候。临时表创建在tempdb数据库里,它默认是继承了SQL Server实例的COLLATE设置。如果你的用户数据库是从另外一台服务器附加上来的话,很可能是另一中COLLATE设置。两者不兼容就会出现这种错误。
解决办法:可以在创建临时表时,为文本字段指定 COLLATE DATABASE_DEFAULT, 从而明确指定从当前用户数据库继承 COLLATE 设置。
库。
通常使用以下两种方法来映射继承关系:
1)将基类映射到一张表,每个子类映射到一张表。在基类对应的表中定义主键,而在
子类对应的表中定义外键。
2)将每个子类映射到一张表,没有基类表。在每个子类的表中包括基类的所有属性。
这种方法适用于子类的个数不多,基类属性比较少的情况。
系统数据库,如master model tempdb等
在SQL Server系统中,系统运行时会用到的相关信息,如系统对象和组态设置等,都是以数据库的形式存在,而存放这些系统信息的数据库称为系统数据库。成功安装SQL Server后,系统会自动建立master、model、msdb、resource、及tempdb等5个系统数据库。
1master
master数据库是SQL Server中最重要的数据库,记录了SQL Server系统中所有的系统信息,包括登入账户、系统配置和设置、服务器中数据库的名称、相关信息和这些数据库文件的位置,以及SQL Server初始化信息等。由于master数据库记录了如此多且重要的信息,一旦数据库文件损失或损毁,将对整个SQL Server系统的运行造成重大的影响,甚至是得整个系统瘫痪,因此,要经常对master数据库进行备份,以便在发生问题时,对数据库进行恢复。
2tempdb
tempdb数据库是存在于SQL Server会话期间的一个临时性的数据库。一旦关闭SQL Server,tempdb数据库保存的内容将自动消失。重启动SQL Server时,系统将重新创建新的、空的tempdb数据库。
tempdb保存的内容主要包括:
显示创建临时对象,例如表、存储过程、表变量或游标。
所有版本的更新记录。
SQL Server创建的内部工作表。
创建或重新生成索引时,临时排序的结果。
3model
model系统数据库是一个模板数据库,可以用作建立数据库的摸板。它包含了建立新数据库时所需的基本对象,如系统表、查看表、登录信息等。在系统执行建立新数据库 *** 作时,它会复制这个模板数据库的内容到新的数据库上。由于所有新建立的数据库都是继承这个model数据库而来的,因此,如果更改model数据库中得内容,如增加对象,则稍后建立的数据库也都会包含该变动。
model系统数据库是tempdb数据库的基础。由于每次启动提供SQL Server时,系统都会创建tempdb数据库,所以model数据库必须始终存在于SQL Server系统中。
4msdb
msdb系统数据库是提供提“SQL Server代理服务”调度警报、作业以及记录 *** 作员时使用。如果不使用这些SQL Server代理服务,就不会使用到该系统数据库。
SQL Server代理服务是SQL Server中的一个Windows服务,用于运行任何已创建的计划作业。作业是指SQL Server中定义的能自动运行的一系列 *** 作。例如,如果希望在每个工作日下班后备份公司所有服务器,就可以通过配置SQL Server代理服务使数据库备份任务在周一到周五的22:00之后自动运行。
5resource
resource数据库是只读数据库,包含了SQL Server中所有系统对象,如sysobject对象。SQL Server系统对象在物理上持续存在与resource数据库中。
额。。。这个提示好像只是说这个方法没有被引用吧
一年多没碰了,印象这个地方是坑了很久,翻了下以前的代码,发现几个线索
这个成员声明去掉private
SQLiteDatabase db;
实现类里面有个这个东东,你在你的实现类里面加下试试,可能有效
public final static String DB_NAME = "testdb";
可以用这个函数调试,方法进去没有很清晰
androidutilLogi("onCreate()", "create Database------------->");
去翻翻父类的机制,印象中里面调来调去的
附测过的源码(sdk的版本是20131030这个的)
package orgxxxxandriodiweather;
import androidcontentContext;
import androiddatabasesqliteSQLiteDatabase;
import androiddatabasesqliteSQLiteDatabaseCursorFactory;
import androiddatabasesqliteSQLiteOpenHelper;
import androidutilLog;
public class DBHandle extends SQLiteOpenHelper {
private static final int VERSION = 1;
// public final static String DB_PATH = "/sdcard/mydb/";
public final static String DB_NAME = "iweatherdb";
SQLiteDatabase db;
public DBHandle(Context context, String name) {
super(context, name, null, VERSION);
Logi("init DBHandle:", "1");
}
public DBHandle(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
Logi("init DBHandle:", "2");
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
// db = getWritableDatabase();
Logi("onCreate()", "create Database------------->");
//这个表用于存放地市列表
dbexecSQL("create table city_list(city_id varchar(20),city_name varchar(20),parent_id varchar(20),parent_name varchar(20),is_leaf int)");
//这个表用于存放地市ID和查询天气时用的地市编码映射关系
dbexecSQL("create table city_code(city_id varchar(20),city_code varchar(20))");
Logd("Sqlite onCreate", dbtoString());
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
}
orm是object relational mapping的简称,对象关系映射它的出现是为了解决对象和关系型数据库不匹配的技术。
orm是使用描述对象和关系数据库之间映射的元数据,将java中的对象自动持久化到数据库中。orm是随着面向对象的软件开发方法发展而产生的。先进面向对象是主流的软件开发方法,而关系型数据库也是主流的数据存储数据库,但是面向对象的编程在内存对象之间存在关联和继承关系。
而在数据库中的数据无法直接表达多对多的关联和继承的关系所以orm一般充当的是中间件,主要实现程序对象到关系数据库的映射。目前来说实现orm的产品比较流行的是:Apache ojb开源。Oracle topLink商业。hibernate开源。Cayenne开源。iBatis开源。hibernate逐渐成为orm的主导,甚至有可能代替ejb出现。
概念:
对象关系映射,是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。
对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。
以上就是关于数据库定义全部的内容,包括:数据库定义、sql数据库COLLATE、如何将含有继承关系的类图映射为关系数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)