联系数据库
A. 简述数据仓库与关系数据库的区别与联系
区别:
1、数据库是面向事务的设计,数据仓库是面向主题设计的。
2、数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。
3、数据库是面向事务的设计,数据仓库是面向主题设计的。数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。
4、数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。
联系:
数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,数据仓库的出现,并不是要取代数据库。目前,大部分数据仓库还是用关系数据库管理系统来管理的。可以说,数据库、数据仓库相辅相成、各有千秋。
(1)联系数据库扩展阅读:
1、面向主题的:传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据;数据仓库侧重于数据分析工作,是按照主题存储的。
这一点,类似于传统农贸市场与超市的区别—市场里面,白菜、萝卜、香菜会在一个摊位上,如果它们是一个小贩卖的;而超市里,白菜、萝卜、香菜则各自一块。也就是说,市场里的菜(数据)是按照小贩(应用程序)归堆(存储)的,超市里面则是按照菜的类型(同主题)归堆的。
2、与时间相关:数据库保存信息的时候,并不强调一定有时间信息。数据仓库则不同,出于决策的需要,数据仓库中的数据都要标明时间属性。决策中,时间属性很重要。同样都是累计购买过九车产品的顾客,一位是最近三个月购买九车,一位是最近一年从未买过,这对于决策者意义是不同的。
3、不可修改:数据仓库中的数据并不是最新的,而是来源于其它数据源。数据仓库反映的是历史信息,并不是很多数据库处理的那种日常事务数据(有的数据库例如电信计费数据库甚至处理实时信息)。因此,数据仓库中的数据是极少或根本不修改的;当然,向数据仓库添加数据是允许的。
B. Android 联系人数据库介绍以及对联系人的基本操作
一、 联系人数据库 联系人的数据库文件的位置 /data/data/com.Android.providers.contacts/databases.contacts2.db 数据库中重要的几张表 1、contacts表 该表保存了所有的手机测联系人,每个联系人占一行,该表保存了联系人的 ContactID、联系次数、最后一次联系的时间、是否含有号码、是否被添加 到收藏夹等信息。 2、raw_contacts表 该表保存了所有创建过的手机测联系人,每个联系人占一行,表里有一列标 识该联系人是否被删除,该表保存了两个ID:RawContactID和ContactID, 从而将contacts表和raw_contacts表联系起来。该表保存了联系人的 RawContactID、ContactID、联系次数、最后一次联系的时间、是否被添 加到收藏夹、显示的名字、用于排序的汉语拼音等信息。 3、 mimetypes 该表定义了所有的MimeTypeID,即联系人的各个字段的唯一标志。 4、data表 该表保存了所有创建过的手机测联系人的所有信息,每个字段占一行 ,该表 保存了两个ID:MimeTypeID和RawContactID,从而将data表和 raw_contacts表联系起来。 联系人的所有信息保存在列data1至data15中,各列中保存的内容根据 MimeTypeID的不同而不同。如保存号码(MimeTypeID=5)的那行数据中, data1列保存号码,data2列保存号码类型(手机号码/家庭号码/工作号码等)。 二、对联系人的基本操作 这里的基本操作只是针对手机测的联系人,(U)SIM侧的联系人的操 作后续介绍。 如果对联系人的基本操作,我们必须得到许可。 方法就是在AndroidManifest.xml文件中配置如下权限: <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" />
C. Android 联系人数据库介绍以及对联系人的基本操作
一、 联系人数据库
联系人的数据库文件的位置
/data/data/com.Android.providers.contacts/databases.contacts2.db
数据库中重要的几张表
1、contacts表
该表保存了所有的手机测联系人,每个联系人占一行,该表保存了联系人的
ContactID、联系次数、最后一次联系的时间、是否含有号码、是否被添加
到收藏夹等信息。
2、raw_contacts表
该表保存了所有创建过的手机测联系人,每个联系人占一行,表里有一列标
识该联系人是否被删除,该表保存了两个ID:RawContactID和ContactID,
从而将contacts表和raw_contacts表联系起来。该表保存了联系人的
RawContactID、ContactID、联系次数、最后一次联系的时间、是否被添
加到收藏夹、显示的名字、用于排序的汉语拼音等信息。
3、 mimetypes
该表定义了所有的MimeTypeID,即联系人的各个字段的唯一标志。
4、data表
该表保存了所有创建过的手机测联系人的所有信息,每个字段占一行 ,该表
保存了两个ID:MimeTypeID和RawContactID,从而将data表和
raw_contacts表联系起来。
联系人的所有信息保存在列data1至data15中,各列中保存的内容根据
MimeTypeID的不同而不同。如保存号码(MimeTypeID=5)的那行数据中,
data1列保存号码,data2列保存号码类型(手机号码/家庭号码/工作号码等)。
二、对联系人的基本操作
这里的基本操作只是针对手机测的联系人,(U)SIM侧的联系人的操
作后续介绍。
如果对联系人的基本操作,我们必须得到许可。
方法就是在AndroidManifest.xml文件中配置如下权限:
<uses-permission android:name="android.permission.READ_CONTACTS"
/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"
/>
D. 什么是关系数据库
关系数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据,现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。
关系模型是由埃德加·科德于1970年首先提出的,并配合“科德十二定律”。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准。
标准数据查询语言sql就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。 关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。
简单说,关系型数据库是由多张能互相联接的二维行列表格组成的数据库。
E. Android 联系人数据库介绍以及对联系人的基本操作
联系人数据库最重要的三张表
1.raw_contacts表
保存联系人的id
contact_id
2.data
表
保存联系人的数据
通过raw_contact_id确定数据属于哪个联系人
3.mimetypes
表
保存联系人的数据类型
查询联系人的步骤:
1.查询
raw_contacts表
获取联系人的id
2.查询data表
根据联系人的id
把这个联系人的所有的数据给取出来。
F. php是怎么联系数据库的,还有就是html中的变量和数据库是怎么关联谢谢!
php中有连接数据库的方法,$link
=
mysql_connect('
localhost
','root','root')
or
die(mysql_errno());
mysql_select_db
('test')
or
die
(mysql_errno());
mysql_query('SET
NAMES
gbk');
$sql
=
"SELECT
*
FROM
test
LIMIT
0,20";
$result
=
mysql_query($sql)
or
die(mysql_errno());
while($msg
=
mysql_fetch_array($result)){
print_r
($msg);
}
mysql_free_result($result);
mysql_close
($link);
html的中的变量可以通过form表单把
变量值
传到php中进行连库操作,例如
那么在a.php中就这样接收这个参数
$username=$_POST['username'];
然后再进行连库操作
G. 关系数据库如何查询多表有联系数据
关联查询是日常工作中常用的查询方式,关联查询sql编写的思路一般如下:1、先确定所连接的表,2、再确定所要查询的字段,3、确定连接条件以及连接方式(表连接分类: 内连接、外连接、交叉连接、自连接)
1、内连接:[inner] join on
分类:等值连接、非等值连接
(1)等值连接: 指使用等号"=“比较两个表的连接列的值,相当于两表执行笛卡尔后,取两表连结列值相等的记录(自然连接是一种特殊的等值连接)(2)非等值连接:指使用”>“或”<"比较两个表的连接列的值,相当于两表执行笛卡尔后,取一个表大于或小于另一个表的连结列值的记录
2、外连接
分类:左外连接、右外连接、全外连接
(1)左外连接:left outer join
连接效果:查询结果包含左、右两个表需要查询的全部行,左侧的表中的全部数据都会被显示出来,但是右侧表的数据,只有和左侧匹配上的数据才会被查询出来!否则显示为null(2)右外连接:right outer join
连接效果:查询结果包含左、右两个表需要查询的全部行,右侧的表中的全部数据都会被显示出来,但是左侧表的数据,只有和右侧匹配上的数据才会被查询出来!否则显示为null(3)全外连接:full/all outer join,查询结果包含左、右两个表需要查询的全部行,对应字段没有值显示null
3、交叉连接
左表中的每一行与右表中的所有行组合,也叫表与表之间做笛卡尔积查询
4、自连接
当前表与自身的连接查询,关键点在于虚拟化出一张表,即给自身的表定义一个别名