MySQL - 데이터베이스 기본개념
데이터베이스의 기본개념
DBMS (Database Management System)
일반 사용자 및 프로그램이 데이터베이스(=데이터의 집합)에 접근할 수 있도록 돕는 관리 시스템
→ SQL : DBMS를 통해 데이터베이스에 접근을 요청하기 위해 사용하는 언어
- 장점:
- 데이터의 무결성: 현재 데이터가 오류가 있는지를 체크해준다.
- 데이터의 독립성: 여러 사람이 데이터에 동시에 접근하고, 데이터를 변경하거나 저장소를 변경하더라도 프로그램은 영향을 받지 않는다.
- 보안
- 데이터 중복의 최소화
- 응용 프로그램 제작/수정이 쉬워짐
- 데이터의 안전성 향상
- DBMS의 유형
- 계층형
- 망형
- 관계형 (Relational DBMS): 테이블 형태로 구성이되어 있다. 가장 많이 사용. MySQL, Oracle, PostgreSQL, DB2, SQLite 등 대다수가 RDBMS
- 객체지향형
- 객체관계형
- NoSQL → 최근에 성장중. MongoDB
SQL (Structured Query Language)
관계형 데이터베이스에서 사용되는 표준화 된 언어 → 호환성이 높다
- DBMS 회사와 독립적
- 다른 시스템으로의 이식성이 좋음; 호환성
- 표준이 계속 발전한다
- 대화식 언어
- 분산형 클라이언트/서버 구조
정보시스템 구축 절차
- 분석: 시스템 또는 요구사항 분석. 우리가 ‘무엇을’ 할 것인지 결정
- 설계: 구축하고자 하는 시스템을 ‘어떻게’ 만들 것인지 결정
- 구현
- 시험
- 유지보수
데이터베이스 모델링
현실세계에서 사용되는 데이터를 어떻게 옮겨 놓을 것인지를 결정하는 과정으로 분석, 설계 과정에서 가장 중요한 파트. 데이터베이스 내 테이블의 내용들이 곧 프로그램의 VO와 일치한다고 보면 됨.
- 테이블 : 데이터를 입력하기 위해 표 형태로 표현한 것
- 스키마 or 데이터베이스 : 테이블이 저장되는 저장소의 한 단위. 한 스키마에 여러개의 테이블을 지정할 수 있다.
- 열 (=칼럼 =필드)
- 행 (=로우 =레코드) : 하나의 객체가 갖는 값의 목록
- 기본 키 or 주키 (Primary Key) : 테이블 내 각 행을 구분하는 유일한 열. 중복될 수 없고 null 이어도 안된다.
- 외래 키 (Foreign Key) : 다른 테이블에서 가져와, 현 테이블과 관계를 맺어주는 키.
기본적인 SQL 문법
USE 스키마; #사용할 DB 선택
#테이블 만들기
CREATE TABLE 테이블명(
탭이름1 integer primary key, #정수, 프라이머리 키로 사용할 탭 추가
탭이름2 char(10) not null #문자, null이 될 수 없고 반드시 값의 입력이 필요한 탭 추가
);
#insert - 테이블에 한 줄 추가
INSERT INTO 테이블명 VALUES(1, 'aaa'); #설정한 탭 순서대로 값 1, 'aaa' 인 줄을 추가
- SQL 문은 대소문자를 구분하지 않는다 (텍스트 제외)
- 일반적으로 키워드는 대문자로 입력하고 테이블 이름, 열 등 다른 단어는 모두 소문자로 입력한다.
- SQL 문은 하나 이상의 줄에 입력할 수 있다
- 키워드는 약어로 쓰거나 여러 줄에 나눠 쓸 수 없다
- 절은 일반적으로 서로 다른 줄에 쓴다
- 문장 끝에 세미콜론(;)을 붙여줘야 에러가 나지 않고 다른 문장과 구분된다
- null : 알 수 없는 값, 사용할 수 없는 값, 할당할 수 없는 값, 적용할 수 없는 값을 의미. 0 또는 공백과 다르다.
댓글남기기