DBMS day 1

유요한·2022년 4월 12일
0

DBMS

목록 보기
1/8
post-custom-banner

DBMS의 시작

설치
https://dev.mysql.com/downloads/windows/installer/8.0.html
설치할때 Installation화면에서 MySQl Server / MySQL Workbench / Connector j 이거
3개가 있어야 한다. 없으면 Sever에서 Execute하기!!
설치파일 실행 > Developer Default > Server, Workbench, Connector/J >
포트번호 3306확인 > Use Legacy ~~~(아래꺼) > 루트계정 아이디/비밀번호 1234 >
Bootstrap ~~는 선택하지 않고 Finish > Connect To Server에서 root/1234로 로그인 시도
Workbench 켜서 root/1234 로그인 > 성공하면 설치 끝

DB(데이터 베이스)

데이터들의 집합소(저장소)

DBMS

Data Base Management System
데이터 베이스를 관리하는 시스템
오라클, MySQL, 마리아DB, ...

테이블

  • 특정 집단에 대한 데이터가 표 형태로 저장되는 공간
  • 테이블을 만든다는 것은 특정 데이터가 올 공간을 만드는 것
  • 테이블 설계
  • 자동차 테이블(브랜드, 색깔, 가격)

행(Row, 레코드, 튜플, ...)

  • 하나의 대상에 대한 데이터
  • 그 줄에 모든 데이터는 같은 대상에 대한 데이터들이다.

열(Column, 속성, 필드, ...)

  • 공통된 값들의 주제
  • 그 열의 모든 데이터는 모두 같은 속성의 데이터들이다.

테이블 간의 관계

테이블 간의 관계는 1:1, 1:N, N:M(여러개랑 여러개)의 관계들이 있다.

위 그림처럼 여러명의 학생과 여러개의 수업을 테이블로 나타내면 경우의 수가 엄청 많아져서 찾을 때 매우 어려워지게 된다. 따라서, 각 테이블에는 해당 테이블에 필요한 정보를 나타내도록 하고 테이블 행을 식별할 수 있는 것만 뽑아내서 두 테이블의 관계를 표현하는 아래 그림과 같이 관계를 나타내주는 새 테이블을 만들어 1:N관계로 나눠준다.

이렇게 하면 학생들의 정보와 수업들의 정보를 담은 두 테이블과 학생_수업과의 관계를 나타내는 테이블이 만들어 지며 학생테이블과 학생-수업테이블 / 수업테이블과 학생-수업 테이블은 각각 1:N관계를 가지게 된다.

위 그림에서 이러한 관계를 표현하는 과정에서 눈에 띄는 것이 PK, FK이다. 그림에서 학생-수업 테이블은 학생테이블과 수업테이블의 관계를 1:N 관계로 나타내기위한 테이블이므로 학생테이블과 수업테이블을 참조하여 만들어야 한다. 그러기 위해서 학생정보를 식별하는 학생코드(PK), 수업정보를 식별하는 수업코드(PK)로 테이블이 구성되며 이렇게 다른 테이블의 정보를 참조하기위한 학생코드와 수업코드는 학생_수업테이블 내에서 FK(외래키)가 된다.

학생과 수업 테이블의 PK가 학생-수업 테이블에서는 FK가 되며이는 학생-수업테이블은 학생과 수업테이블을 참조하는 테이블이라는 의미를 표현하며 동시에 학생과 수업테이블은 학생-수업테이블에 의해 참조되는 테이블로 서로의 관계를 알 수 있게 된다.


primary Key(PK)

  • 각 데이터들의 고유한 값(각 데이터들의 구별점 역할)

  • 중복이 없고, 비어있지 않음

  • 주 식별자키로 테이블의 모든 데이터를 식별하는 컬럼

  • 중복 불가, NULL 불가

  • 함수적 종속 관계

    1. 기술적인 의미

  • 기본키는 다른 항목과 절대로 중복되어 나타날 수 없는 단일 값(unique)을 가집니다.

  • 기본키는 절대 null(아무런 값이 없는 상태) 값을 가질 수 없습니다.

    ex) 예를 들면 주민등록번호 같은 개념이죠. 동일한 이름을 가진 사람은 많을 수 있고, 동일한 날에 동일한 이름을 가진 사람도 존재할 수 있지만, 결국 그 사람들이 만나 서로의 민증을 대조해 보면.... 결국 다른 번호로 구분 됩니다.

  • 기본키는 하나 이상의 컬럼이 그룹화 되어 키본키로도 쓰일 수도 있습니다.

2. 암묵적 성격

  • 기본키를 추가할 때에는 기본키가 되는 컬럼 또는 컬럼의 그룹에 대하여 자동으로 단일의 B-트리 인덱스가 생성됩니다.

  • 테이블은 기본키를 하나까지만 가질 수 있습니다.

  • 기술적 측면에서 기본키는 단일 값(Unique)하고 not Null(Null 값 비허용)이면 기능적으로 동일하게 동작은 하지만,
    실제적으로 기본키처럼 구분되는건 오직 하나입니다. 즉, 다 똑같은 Unique하고 not Null 이라고 기본키가 되는게 아닙니다.

  • 관계형 DB 이론상 모든 테이블은 반드시 하나의 기본 키를 가져야 합니다.

RDBMS
Relational DataBase Management System
관계형 데이터베이스 관리 시스템

테이블들끼리 서로 관계를 맺고 있는 데이터 베이스 관리 시스템
→ 상품번호가 상품테이블과 연관되어 있고 ID가 회원테이블과 연결되어 있는 관계성


Foreign Key(FK)

  • 외래키(외부식별자키)

  • 테이블끼리 관계를 맺을 때 받아오는 다른 테이블의 키(보통 PK)

    • 테이블 간의 관계 의미
    • 두 테이블 간의 종속이 필요한 관계이면 그 접점이 되는 컬럼을 FK로 지정하여 서로 참조할 수 있도록 관계를 맺어준다.
  • 다른 테이블의 PK를 참조하는 키. 참조하는 PK와 동일한 domain을 갖는다.

  • 중복 데이터 제거를 위해 테이블을 분리할 때, 반드시 필요한 개념

  • '한 테이블에 존재하는 다른 테이블의 정보'이기 때문에 외래키라고 부른다.

  • 테이블 간 잘못된 매핑을 방지하는 역할

외래키의 역할

  • 두 테이블을 연결해 주는 다리 역할을 한다.
  • 참조하는 테이블의 무결성을 높여 준다 (참조무결성)
	create table dish (
    id varchar(5) not null,
    main_image varchar(100) not null,
    ...
    stock int not null,
    point int not null,
    primary key (id),
    foreign key (category_id) references category (id)
);

MySQL

  • 세계에서 가장 많이 쓰이는 오픈 소스의 RDBMS이다.
  • 다양한 운영체제에 다양한 언어로 활동 가능하다.
  • 표준 SQL 형식을 사용한다.

설치
https://dev.mysql.com/downloads/windows/installer/8.0.html
설치할때 Installation화면에서 MySQl Server / MySQL Workbench / Connector j 이거
3개가 있어야 한다. 없으면 Sever에서 Execute하기!!
설치파일 실행 > Developer Default > Server, Workbench, Connector/J >
포트번호 3306확인 > Use Legacy ~~~(아래꺼) > 루트계정 아이디/비밀번호 1234 >
Bootstrap ~~는 선택하지 않고 Finish > Connect To Server에서 root/1234로 로그인 시도> Workbench 켜서 root/1234 로그인 > 성공하면 설치 끝

SQL(Structured Query Language)

  • 인터프리터 언어 : 동시통역
  • 한줄씩 번역되고 빈번한 수정이 있을 때 효과적이다.
  • 번역과 동시에 바로 실행된다. (번역 파일이 존재하지 않는다.)
	DDL(Data Definition Language)
	DML(Data Manipulation Language)
	DCL(Data Control Language)
	TCL(Transaction Control Language)

키 의미

  • 실행 : Ctrl + 엔터
    • 선택한 쿼리문 실행(선택한줄)
    • MySQL은 한줄씩 실행이다.
  • # : 한줄 주석
  • create: 만들기
	// web0315라는 데이터베이스 생성
    create database web0315;
  • drop : 폴더를 자체를 삭제
	// web0315라는 데이터베이스 삭제
	drop database web0315;
  • use : 사용하는 키
	// 데이터베이스 사용
    use web0315;

DDL

Data Definition Language

  • 데이터 정의어
  • 테이블 관련 쿼리문
    • create : 테이블 생성
    • drop : 테이블 삭제
    • alter : 테이블 수정

테이블 생성

create table 테이블명(
		컬럼명1 자료형 [제약조건],
		컬럼명2 자료형 [제약조건],
		...
);
	# 테이블 생성
    create table Car(
	brand varchar(300),
    color varchar(300),
    price int
);

▶ 테이블 삭제부터는 day2

자료형

숫자
int : 정수
decimal(n, m) : n(전체 자리수) / m(소수점 자리수)
ex) decimal(4,2) → -99.99 ~ 99.99

문자열

  • char(n) : n바이트의 문자열(고정형), 빈 자리는 그대로 남겨둔다.
    ex) char(4) → [ ] → 'A'를 넣으면? → [A ] ← 용량확보
  • varchar(n) : n바이트의 문자열(가변형), 빈 자리는 할당 해제
    ex) varchar(4) → [ ] → 'A'를 넣으면? → [A] ← 효율적으로 사용
    varchar은 최대 4000까지 가능하다.
  • enum(값1,값2, ..): 해당하는 값들만 들어올 수 있는 자료형 설정
    ex) enum('m','w') → 'm' 또는 'w'만 들어올 수 있음
    하나짜리만 사용하지 대규모에서는 사용안함

시간(날짜)
date : 한 순간의 날짜를 저장하는 타입
datetime : 한 순간에 날짜와 시간을 저장하는 타입

  • create web0315;를 하고 테이블을 생성하고 테이블안에 Columns을 생성하면 Schemas창에 위와같이 뜬다. Schemas를 보면 무슨 데이터베이스를 생성했는지 무슨 행을 만들었는지 확인할 수 있다.
profile
최선을 다하자!!
post-custom-banner

0개의 댓글