728x90
반응형
1. DBMS란?
**DBMS (DataBase Management System)**는 데이터를 저장하고 관리하며, 필요할 때 꺼내 쓸 수 있도록 도와주는 시스템입니다.
예) MySQL, Oracle, PostgreSQL, SQL Server 등
DBMS 안에는 여러 개의 **Database(계정)**가 있고, 그 안에 여러 개의 **Table(테이블)**이 존재합니다. 이 구조가 바로 관계형 데이터베이스(RDBMS)의 기본입니다.
2. MySQL 구성 개요
- Client / Server 구조
- 사용자가 데이터를 요청 → 서버가 DB를 조회 후 응답
- 화면에서는 form 데이터를 받고, DB에서는 column 기준으로 데이터를 처리
- MySQL 구성
- DBServer → Database → Table
- 테이블 구조는 2차원 (행과 열 = row, column)
- 하나의 테이블에는 정형데이터만 저장 가능
정형데이터: 숫자, 날짜, 문자열 등 쪼갤 수 있는 구조적 데이터
비정형데이터: 이미지, 음성, 자연어 등 → DBMS가 아닌 AI 쪽에서 다룸
3. 테이블 설계와 모델 구성
- VO(Value Object): 데이터 구조 자체
- DAO(Data Access Object): DB에 접근해서 CRUD 처리
- 둘을 합쳐 Model이라 부르기도 합니다.
⚠️ Java의 상속 관계를 DB 테이블에 그대로 적용하면 안 됩니다.
테이블은 중복을 최소화해야 하고, 상속보다는 단일 테이블 구조로 설계합니다. 예: Employee 테이블
4. Primary Key란?
- **기본 키(Primary Key)**는 하나의 행을 고유하게 식별합니다.
- 반드시 지켜야 할 조건:
- Not Null
- Unique
예:
myTable
1, James, 25 → 행(row), 즉 하나의 레코드
5. SELECT 문과 SQL 실행 순서
- SQL에서의 실행 순서:
FROM → WHERE → SELECT → ORDER BY
즉, SELECT가 제일 먼저 눈에 보여도, 실제 실행은 FROM부터입니다.
- Projection: 보여주고자 하는 컬럼만 SELECT 절에 명시
- 예: SELECT id, name FROM mytable;
- Selection: 조건에 맞는 행만 가져오기
- 예: SELECT * FROM mytable WHERE age = 30;
⚠️ SELECT *은 절대 사용하지 말 것!
보안상 민감한 데이터까지 노출될 수 있고, 성능에도 악영향
6. CRUD와 실무 사용 비율
기능설명
C | Create — INSERT |
R | Read — SELECT (95% 차지) |
U | Update |
D | Delete |
구조 변경 시엔 DROP, ALTER 명령어 사용
7. RDBMS의 관계 모델
- 1:N 관계
- 하나의 부서(Department)에는 여러 명의 직원(Employee)이 소속
- 한 명의 직원은 하나의 부서에만 소속
- Java로 비유하자면:
class Employee {
Department department;
}
→ 이는 Has-A 관계이며, 관계형 모델로 구현됩니다.
8. 추가 개념 요약
- MySQL에서 계정은 데이터베이스 단위로 관리됨
- 테이블은 정형데이터만 저장 가능
- MongoDB 같은 비관계형 DB는 비정형데이터를 다룰 수 있음
728x90
반응형
'SQL' 카테고리의 다른 글
[MySQL] 변환 함수, 그룹 함수, GROUP BY, HAVING 절 (0) | 2025.05.20 |
---|---|
MySQL 함수들과 조건 검색, 그리고 JDBC 연결 구조 (2) | 2025.05.19 |
SQL 기초 문법 요약: ORDER BY, NULL, LIKE, LIMIT 완벽 이해 (1) | 2025.05.19 |