MariaDB - schema스키마/ information_schema

2025. 5. 11. 19:28·DB

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
'DB' 카테고리의 다른 글
  • transaction 트랜잭션 / autocommit 기능 키고 끄기
  • 서브쿼리 sub query 란 무엇인가, 의미, 기본, 종류, 예시, 주의점
  • join, union
  • database engine / 데이터베이스 엔진
햅삐root
햅삐root
happyroot 님의 블로그 입니다. IT 보안 정리💛
  • 햅삐root
    햅삐한 root
    햅삐root
  • 전체
    오늘
    어제
    • 전체보기 IT (123)
      • Linux (21)
      • Network (23)
      • packet tracer& GNS3 (10)
      • Cryptology (7)
      • WEB (16)
      • DB (16)
      • Hacking (28)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    sqlinjection
    injectionvector
    Hack
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
햅삐root
MariaDB - schema스키마/ information_schema
상단으로

티스토리툴바