2-3 DB

6300 ワード

1. DB


ORM
object relation matching
データから独立したプログラムでもデータをクエリーできます
長所
データの論理的独立性
データの物理的独立性
データの整合性の維持
重複データの最小化(エラーなし)
リレーショナル・データベースのオーバーヘッドが最大(リレーショナル・データベースのみがデータをロード)

2. DBMS


sqlを作った会社を出ましたdbの作成
mysql
定義#テイギ#
操作機能データを取得します.更新、挿入、削除をサポート
制御機能:データの正確性と信頼性を保つ機能
私たちは主に操作言語を勉強します.

3. dm,



この部分が暗号化されていても、盗まれることもあります
オブジェクトと変数と機能(属性のみ保持)の関係
DB作成時
計画分析設計実施試験メンテナンスを推奨

1.データモデリング


現実世界の存在をコンピューターに移す過程.
コンセプト構造>論理構造>(物理構造)
データベース設計
コンセプトデザイン
データを抽象的な概念として構造化し、定型化するプロセス.
E-R図
ろんりせっけい
画像ベースの作成

バージョンスキーム(表)
name  	age
sjb		12	
lsth	123
≪データ型|Data Type|oem_src≫:ハイフンまたはワード長
保留拘束条件等

2.関係データモデル


バージョン:情報を格納するシェイプが2 D構造のテーブル.
≪プロパティ|Properties|oem_src≫:表の各列を表します.
例:テーブル内の1行のプロパティのセット.
≪ドメイン|Domain|ldap≫:属性が許容できる値のセット
基数:tupleの基数
回数:属性の回数

3.バージョンフィーチャー


特定のバージョンには1つのレコードタイプのみが格納されます
1つのプロパティの値は同じタイプです.
属性の順序は重要ではありません
各プロパティの名前は、1つのバージョンで一意です.
同じ名前のコメントを1つのバージョンで複数作成することはできません
他のバージョンに存在可能
同じ例はバージョンに複数存在しません
1つのtupleの各属性には原子値があります.
値にリストまたはコレクションを含めることはできません
原子価とは何ですか.
ex)属性はリストしない
kim 20映画、歌、サッカーという複数のx
kim 20 movie
kim 20曲はこのように単独で保存します
複数の値を複数回保存する必要があります

4.身長の種類


オブジェクト間の関係を作成するときにキーを使用する
1スーパーキー:一意性はありますが、 最小値を満たす できません プロパティ しゅうごう
2候補鍵:デフォルト鍵の候補
3プライマリ・キー:オブジェクト識別子、
4スタンバイ・キー:プライマリ・キー以外のスタンバイ・キー
5外部キー:他のテーブルを参照するプロパティ
別のテーブルの値が参照によって変更された場合、その値は自分で変更されます.
最小性は一意性を満たさなければならないからだ.
必要最小属性数
一つがだめなら、二つを縛ってください.

5.制約関係データ


オブジェクト整合性:デフォルトバージョンでプライマリ・キーを構成する任意のプロパティでnullとxの繰り返しが許可されます.
参照整合性:外部キーの値はnullまたは参照バージョンのプライマリ・キーです.
≪ドメイン整合性|Domain Compliance|ldap≫:特定の属性の値は、定義された値のみを許可します.

思想


オブジェクト(四角形)をバージョン(表)に変換
複数対複数の関係:1つのバージョンとして表示
ex)
いくつかの学生の授業を受けることができます.
授業は複数の学生が受講できる.
다대다			새로운 릴레이션 형성						
									
이름	나이		학생	과목		강사	과목		
aa	20		aa	파이썬		김	파이썬		
bb	21		bb	파이썬		최	DB		
									
1対のマルチリレーション:マルチ対のマルチ外部キー属性として表示
ex)
学生はいろいろな携帯電話を遊ぶことができます.
携帯電話には主人がいます.
핸드폰	번호			핸드폰	번호	소유자		
삼성	1234			삼성	1234	aa		
삼성	1234	   -->		삼성	1234	aa		
애플	1123			애플	1123	aa		
애플	1331			애플	1331	bb		
								
所有者という名前の外部キーを追加
一対一の関係:外部キー属性として表示
ex)
夫には妻が一人しかいません.
奥さんには夫が一人しかいません.
外部キーがどこにあるかにかかわらず
多値属性を別のバージョンに変換
이름	나이	취미		이름	나이		취미	이름		
김	20	영화		김	20		영화	김		
김	20	노래	-->	김	20	&	노래	김		
이	20	축구		이	20		축구	이		
										
これにより,一度にデータを追加する場合,以前は3つの名前年齢嗜好を書く必要があったが,2つの嗜好名を追加するだけでよい.

7.正規化


以上の問題を解決するためにテーブルを割った.
以上の種類
≪挿入|Insert|emdw≫:データの保存時に不要な情報が格納されている場合.
削除さくじょ:ステープルを削除して保存する情報を削除します
≪リフレッシュ|Refresh|oem_src≫:重複する凡例の属性の一部のみをリフレッシュし、情報が一致しません.
正規化プロセスを行うには、関数の依存関係を理解する必要があります.
関数依存関係:xのためにy値として指定された松石の他の属性
ex)
年齢は身分証明書番号に従属する
97年生は26歳です.
98年生は25歳です
正規化プロセス
第1の一般型:ドメイン非原子値(1つの値のみ)を原子値に変換する
第2正規型:部分関数従属関係を除去する

の中で、学号と科目コードは成績を決定します.
学号は学部が決まっていて、二つ重なっているので分けます.

第3正規型:実行関数従属関係の除去
a決定bは、b決定cを表す
学号決定学部、学部決定授業料

123コースぐらいでいいです.
これがダメなら.
BCNF:意思決定者における非候補鍵のクリア
第4一般型:複数の依存関係を除去する
第5一般型:結合依存関係を削除する必要がある

8. SQL


データの格納方法?フォーマットまたは値の変更方法
データ定義言語(DDL)
create alter drop(テーブルを完全にクリア)
データ操作言語(DML)
sql終了時;セミコロンは必須です
mysqlワークベンチの使用方法
create DATABASE	ex01;   데이터 베이스 ex01을 생성


use ex01;   			앞으로 ex01을 사용하겠다.

create table student (						table student를 생성
	sname varchar(10) primary key,			
	age integer

);

create table lecture (
	idx integer auto_increment,
	lname varchar(50),
    ltime int,
    primary key (idx)


);

create table lecture_student (
	idx integer,
    sname varchar(15),
	foreign key(idx) references lecture(idx),
    foreign key(sname) references student(sname)


);

create table phonenumber (
	phonenumber integer,
    pname varchar(15),
    foreign key (pname) references student(sname)


);

create table phonenumber_student (
	sname varchar(15),
    phonenumber integer,
    foreign key(sname) references student(sname)



);

insert into student values (
	'student01', 10
    );
insert into student (sname) values ('student02'); 
insert into lecture (lname, ltime) values ('파이썬', 10);
insert into lecture (lname, ltime) values ('DB', 8);
select * from lecture;

select sname from student;
update student set sage = 20 where sname = 'student01';
delete from student where sname = 'student01';



		
alter table student add gender varchar(1);
alter table student drop gender;
alter table student rename column age to sage;
alter table student modify sname varchar(15);


DROP table  phonenumber;
drop database ex01;
その他のデータのインポート
sqlワークベンチサーバタブからデータをインポート
import from self contained file importインポートしたいファイル
use employees;
select * from employees where emp_no < 10011 and ;
select * from employees
		where gender = 'M';
select * from employees
		where last_name = 'Butner' and gender = 'M';
select * from employees
		where birth_date > '1955-01-01';
select *, count(last_name) from employees
		where last_name = 'Butner' group by last_name;
        
group by 는 뒤의 변수로 묶어서 하겠다라는 의미
여기서는 count를 하기위해 묶음
別のテーブルの変数をjoinで一度に表示
joinのタイプ
join:2つのテーブルのオーバーラップを出力する
left join:2つのテーブルのすべての左側を出力し、2つのテーブルで一致する値のみを追加します.
right join:両方のテーブルの右側に出力され、一致値のみが追加されます.

select last_name, salary From employees
		inner join salaries
        on employees.emp_no = salaries.emp_no ; 
ORMオブジェクト関係のマッピング