schema
-데이터 베이스의 전체적인 구조와 그 구조를 표현하는 설정 정보, 출력되는 데이터 전체를 하나의 스키마라고 함
-데이터베이스의 전체적인 구조를 바라보는 관점에 따라 내부 스키마, 개념 스키마, 외부 스키마로 나뉨
-db의 구조,방식을 스키마라고 한다
-권한 설정을 통해 같은 DB의 같은 테이블이라도 서로 다른 테이블로 인식하게 만드는 것을 schema라고 한다
관리자가 보는 db의 구성을 개념스키마
사용자별로 다르게 보이는 db의 구성을 외부스키마
🔸 개념 스키마 (Conceptual Schema)
- 관리자 관점에서 바라본 데이터베이스 구조
- 전체 DB 구조와 논리적인 설계
🔸 외부 스키마 (External Schema)
- 사용자나 프로그램이 바라보는 구조
- 각 사용자 또는 애플리케이션이 접근 가능한 범위에 해당
🔸 내부 스키마 (Internal Schema)
- DB 엔지니어 또는 시스템 레벨에서 바라보는 구조
- 물리적 저장 방법, 인덱스, 저장 포맷 등 포함
전체적인 데이터 베이스의 스키마 정보, 설정 정보를 전부 저장, 관리하는 기능 -> 데이터 사전
🔐 계정과 데이터 정보는 어디에 저장될까?
- 계정에 대한 정보와 실제 데이터는 information_schema에 저장되어 있지 않는다.
- 계정 정보는 보통 my.cnf 등의 설정 파일에 저장되며,
- 실제 데이터는 각각의 테이블 안에 저장된다.
즉, information_schema는 구조 정보(메타데이터)만 담고 있으며, 데이터 자체나 계정 관련 정보는 포함되지 않는다.
mariadb에서 데이터 사전으로 사용하는 DB -> information_schema
사용자든 해커든 결국 DB에서 원하는 데이터를 알아내거나 사용하려면 information_schema에서 원하는 데이터베이스의 구조를 파악해야 한다.
📁 주요 시스템 테이블 소개
1. information_schema.tables
- 테이블의 기본적인 정보가 저장된 테이블
- 각 테이블의 이름, 어떤 데이터베이스에 속해 있는지 등의 정보 포함
2. information_schema.columns
- 컬럼의 기본적인 정보가 저장된 테이블
- 컬럼 이름, 데이터 타입, NULL 여부 등 다양한 속성 포함
use information_schema;
desc tables;
📂 정보 조회 SQL 예제
🔍 전체 데이터베이스 및 테이블 이름 조회
SELECT table_schema, table_name FROM information_schema.tables;
혹은 간단하게:
SELECT table_schema, table_name FROM tables;
tables 안에 있는 DB와 테이블명을 확인할 수 있음
특정 데이터베이스(DB명) 안에 있는 테이블 이름 조회
SELECT table_name FROM information_schema.tables
WHERE table_schema = 'DB명';
🔍 특정 테이블의 컬럼 이름 조회
select column_name from information_schema.culumns where table_name='table명';
select table_schema, table_name, column_name from columns where table_name='member';
🧾 요약 정리
항목 설명
계정 정보 위치 | my.cnf 파일 등 설정 파일 |
실제 데이터 위치 | 각 테이블 내부 |
테이블 구조 정보 위치 | information_schema.tables |
컬럼 구조 정보 위치 | information_schema.columns |
데이터 사전 역할 | 데이터베이스의 전체 구조 및 설정 정보 관리 |
MariaDB의 데이터 사전 | information_schema |
'DB' 카테고리의 다른 글
transaction 트랜잭션 / autocommit 기능 키고 끄기 (0) | 2025.05.12 |
---|---|
서브쿼리 sub query 란 무엇인가, 의미, 기본, 종류, 예시, 주의점 (0) | 2025.05.12 |
join, union (0) | 2025.05.11 |
database engine / 데이터베이스 엔진 (0) | 2025.05.11 |
연습문제 풀이 SQL (DDL,DML,DCL,Join,Union,서브쿼리) (0) | 2025.05.10 |