what is the normal form in English
All relational databases require unique keys to identify primary table rows.A key is required whenever we need to join tables together with SQL. In most cases, the key will be a unique value (e.g. social security number), but we may sometimes see non-unique key values. Sometimes the table will not have a unique value, and your table will have a sequence to uniquely identify each table row.We need these matching keys to use SQL to join tables, and we do this inside our SQL WHERE clause. However
normal format
关系数据库设计之基本规则--范式 引用:原帖由 xzh2002 于 2003-7-22 10:56 发表 1NF: 属性不可再分 2NF:消除1NF的部分依赖 3NF:消除2NF的传递依赖 引用: [color=green] 构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的
Solaris下修改主机名
Solaris下修改主机名 /etc/hosts/etc/nodename/etc/hostname.ce0/etc/net/ticlts/hosts/etc/net/ticots/hosts/etc/net/ticotsord/hosts按照文件中格式将原始主机名替换为新的主机名就可以了。[@more@]
DBMS_METADATA.GET_GRANTED_DDL and dbms_metadata.get_dll, 能帮我干好多活
转利用DBMS_METADATA包获取权限信息 =========================================================== 作者: yangtingkun(http://yangtingkun.itpub.net)发表于: 2007.02.10 23:26分类: ORACLE 出处: http://yangtingkun.itpub.net/post/468/262772--------------------------------------------------------------- Oracle的9i增加了DBMS_METADATA包,从此在需要得到对象的创建脚本时,不再需要通过查询多张系统视图去自己拼凑结果了。只需要调用这个包中的GET_DDL过程就可以轻松的获取对象的创建脚步。不过很多人对DBMS_METADATA包的了解仅
更快地批量数据处理 by ace yangtingkun
如何更快地批量数据处理?发表人:xzh2000 | 发表时间: 2006年十二月07日, 16:42在批量处理数据时,比如从上亿条记录的表中删除上1000万条数据,不仅要考虑对undo的影响,还要考虑对redo,对磁盘i/o,锁、阻塞等的影响,在某种意思上讲,同样的任务,执行的sql次越少,总的消耗的时间就越少。。。create table tmp_object1 as select * from dba_objects;create index idx_object1_name on tmp_object1(object_name);create table tmp_object2 as select * from dba_objects;alter session set events '10046 trace name context forever, l
new article
http://asktom.oracle.com/pls/asktom/f?p=100:11:974743640809258::::P11_QUESTION_ID:442029737684http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:953229842074Tom, I am presently working on a Data Warehouse project which is using Informatica for mapping and loading data into an Oracle database (8.1.7 on HP UX 11.0). The data is in flat files and some of the hundreds of tables in the Warehouse are HUGE (300-500 million records). The designers have not partioned the base
In VS exists, in achived by rewirte sql, existis rewrite using pl/sql block
Tom: can you give me some example at which situation IN is better than exist, and vice versa. and we said...Well, the two are processed very very differently. Select * from T1 where x in ( select y from T2 ) is typically processed as: select * from t1, ( select distinct y from t2 ) t2 where t1.x = t2.y; The subquery is evaluated, distinct'ed, indexed (or hashed or sorted) and then joined to the original table -- typically. As opposed to select * from t1 where exi
to see what package is running in DB
Another possible idea : the following script was adapted from the original idea & research from Steve Adams (www.ixora.com.au), I tested in Personal 8ir3 and it worked as desired :step a) in a quiet database, run the script :sys@PO8IR3:SQL>@v8_running_sqls**** Currently Executing Packages ****no rows selectedsys@PO8IR3:SQL>get v8_running_sqls1 prompt **** Currently Executing Packages ****2 SELECT3 substr(DECODE(o.kglobtyp,4 7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE', 12, 'TRIGGER', 13
showsql.sql
---------------- showsql.sql --------------------------column status format a10set feedback offset serveroutput onselect username, sid, serial#, process, statusfrom v$sessionwhere username is not null/column username format a20column sql_text format a55 word_wrappedset serveroutput on size 1000000declarex number;beginfor x in( select username||'('||sid||','||serial#||') ospid = ' || process ||' program = ' || program username,to_char(LOGON_TIME,' Day HH24:MI') logon_time,to_char(sysdate,' Day HH
about lock
1) Here is a small example showing how this happens. We will use three V$ tables in order to see how this works; V$TRANSACTION, V$SESSION, and V$LOCK. V$TRANSACTION contains an entry for every active transaction. V$LOCK contains an entry for all locks held as well as locks being waited on. V$SESSION shows us the sessions logged in. We'll start by starting a transaction in one session and looking at the state of the system at that point: tkyte@TKYTE816> update dept set deptno = de
tom 就是tom
You Asked Good Morning Tom. I need your expertise in this regard. I got a table which contains millions or records. I want to update and commit every time for so many records ( say 10,000 records). I dont want to do in one stroke as I may end up in Rollback segment issue(s). Any suggestions please ! ! ! Murali and we said...If I had to update millions of records I would probably opt to NOT update. I would more likely do: CREATE TABLE new_table as select <do the update &