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オブジェクト関係のマッピング
Reference
この問題について(2-3 DB), 我々は、より多くの情報をここで見つけました
https://velog.io/@kst5137/2-3-DB
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
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オブジェクト関係のマッピング
Reference
この問題について(2-3 DB), 我々は、より多くの情報をここで見つけました
https://velog.io/@kst5137/2-3-DB
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
name age
sjb 12
lsth 123
다대다 새로운 릴레이션 형성
이름 나이 학생 과목 강사 과목
aa 20 aa 파이썬 김 파이썬
bb 21 bb 파이썬 최 DB
핸드폰 번호 핸드폰 번호 소유자
삼성 1234 삼성 1234 aa
삼성 1234 --> 삼성 1234 aa
애플 1123 애플 1123 aa
애플 1331 애플 1331 bb
이름 나이 취미 이름 나이 취미 이름
김 20 영화 김 20 영화 김
김 20 노래 --> 김 20 & 노래 김
이 20 축구 이 20 축구 이
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;
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를 하기위해 묶음
select last_name, salary From employees
inner join salaries
on employees.emp_no = salaries.emp_no ;
Reference
この問題について(2-3 DB), 我々は、より多くの情報をここで見つけました https://velog.io/@kst5137/2-3-DBテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol