SQLベース
2777 ワード
4月14日内容整理(1)需要分析
(2)概念設計(モデリング):抽象化プロセス(共通点を探すプロセス)、ER図、IEシンボルはここで作成しなければならない.つまり絵で表現できるということです.
*1人の会員は複数回注文できますが、これは「1:N」の関係です.
(3)論理モデリング:表形式で処理
属性/タイプ(サイズ)/nullまたは/pk設定
(4)制約のチェック
-整合性制約:欠点はありません.つまり、データベースに格納されているデータは、一貫した正確なものでなければなりません.
->ドメイン整合性制約:バージョンの凡例には、各プロパティのドメインで指定された値のみが必要です.データ型、null、デフォルト値、チェックなどで指定する場合は、完全に正しい必要があります.
指定したデータは1~3まで受信され、データには5を含めることはできません.
->オブジェクト整合性制約:プライマリ・キー制約、NULL値は使用できません.唯一でなければなりません(繰り返し不可).
->参照整合性制約:外部キー制約、サブバージョン(プロバイダ)の値変更時に親バージョン(プロバイダ)によって制約されます.
親バージョンに設定がない場合は、子バージョンで設定を変更することはできません.サブバージョンを削除する場合は、親バージョンを削除してからサブバージョンを作成できます.
(2)概念設計(モデリング):抽象化プロセス(共通点を探すプロセス)、ER図、IEシンボルはここで作成しなければならない.つまり絵で表現できるということです.
*1人の会員は複数回注文できますが、これは「1:N」の関係です.
(3)論理モデリング:表形式で処理
属性/タイプ(サイズ)/nullまたは/pk設定
(4)制約のチェック
-整合性制約:欠点はありません.つまり、データベースに格納されているデータは、一貫した正確なものでなければなりません.
->ドメイン整合性制約:バージョンの凡例には、各プロパティのドメインで指定された値のみが必要です.データ型、null、デフォルト値、チェックなどで指定する場合は、完全に正しい必要があります.
指定したデータは1~3まで受信され、データには5を含めることはできません.
->オブジェクト整合性制約:プライマリ・キー制約、NULL値は使用できません.唯一でなければなりません(繰り返し不可).
->参照整合性制約:外部キー制約、サブバージョン(プロバイダ)の値変更時に親バージョン(プロバイダ)によって制約されます.
親バージョンに設定がない場合は、子バージョンで設定を変更することはできません.サブバージョンを削除する場合は、親バージョンを削除してからサブバージョンを作成できます.
1.방만들기(create)->방안으로 들어가기(use)->table을 생성(무결성 제약조건)->입력,수정,삭제,조회
*/
drop database if exists naver_db;
create database naver_db;
use naver_db;
drop table if exists memTbl;
create table memTbl(
mem_id char(8) not null,
mem_name varchar(100),
mem_number int default 3, -- 뭔가 입력은 안하면 디폴드값으로 3이 기본적으로 들어감.
-- 테이블을 생성 했는데, primary key 추가로 넣을때alter 를 써서 고쳐도 되고 primary key(mem_id)
-- constraint 제약조건명 cheak(속성= 범위 값) 예) constraint primary key pk_mem_id(mem_id)
);
-- alter table 테이블명 설정할조건 이미만들어진 구조에 내용을추가하거나 내용을 수정할때 쓰임.
-- alter table 테이블명 add 속성명 데이터타입;
-- alter table 테이블명 alter 속성명;
-- alter table 테이블명 drop 속성명;
alter table memTbl add constraint primary key(mem_id);
alter table memTbl add height int;
alter table memTbl drop mem_number;
select*from memTbl ;
drop table if exists buy; -- 미리존재하는테이블 삭제
create table buy(
-- 'auto_increment숫자'은 mySQL만 있는기능 자동으로 번호증가
num int auto_increment not null primary key,
mem_id char(8) not null,
prod_name varchar(20),
e_mail varchar(100) unique, -- unique는 null값은 받지만 중복을 허용하고싶지 않을때 속성으로 지정함.
-- foreign key(지금여기 테이블 왜래키로 설정한필드) reference 참조할 테이블명(참조할 테이블의 기본키)
foreign key(mem_id) reference memTbl(mem_id)
-- 참조하는 테이블의 행(튜플,레코드)이 삭제가 되면 기본 테이블도 같이 연쇄적(cascade)으로 삭제를 하라.
-- on deleate 기능설정 , on update 기능설정 둘중 하나를 쓴다.
-- on deleate/update set/cascade/no action.. 이러한 옵션처리를 해줄수 있다.
on deleate cascade
-- constraint 제약조건이름 check(속성=값)
-- 'constraint 제약조건이름' 생략이 가능하다.
constraint heightMax check(height<=150);
);
-- 위에 설정을 못했을때 아래와 같이 alter를 써서 추가해줄수 있음
alter table buy add constraint foreign key(mem_id) reference memTbl(mem_id);
/*view:가상테이블, 저장장치 내에 물리적으로 존재하지는 않으나, 사용자들은 있는 것처럼 간주
기본 테이블로부터 유도된 테이블이기 때문에 기본테이블과 같은 형태의 구조를 사용하며, 조작도 기본테이블과 거의 같다.
뷰를 통해서만 데이터레 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호할 수 있다.
기본테이븡의 기본키를 포함한 속성 집합으로 뷰를 구성해야만 삽입 삭제, 갱신 연산이 가능
논리적 데이터 독립성을 제공
장점: 논리적 데이터 독립성을 제공
동일 데이터에 대해 동시에 여러 사용저의 서로 다른 이용이나 요구를 지원 사용자의 데이터 관리를 간단하게 해줌
접근제어를 통한 자동 보안이 제공
단점: 독립적인 인덱스를 가질수 없다.
뷰의 정의를 변경할 수 없다.
뷰로 구성된 내용에 대한 삽이브삭ㅈ, 갱신 연산에 제약이 따름
데이터의 변형을 막기위해서 가상의 테이블을 만들어 읽는용도로만 쓴다.
사용자에게만 보여지고 실제는 데이터가 만들어지지 않은것.
Reference
この問題について(SQLベース), 我々は、より多くの情報をここで見つけました https://velog.io/@cbn1218/SQL-기초-l6j78ktkテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol