본문 바로가기
MySQL MariaDB/DB,Table 정보

MariaDB의 Views 생성 및 활용 가이드

by 쑤- IT, MySQL, MariaDB, DBeaver 2024. 11. 10.

MariaDB의 Views(뷰)는 데이터베이스 관리를 간소화하고 효율성을 높이기 위한 강력한 도구입니다. 이 가이드는 뷰의 기본 개념부터 활용 방법까지 설명합니다.

MariaDB의 Views 생성 및 활용 가이드

목차

    1. 뷰(View)란 무엇인가?

    뷰는 데이터베이스 테이블에서 실행된 SQL SELECT문의 결과를 저장하는 가상 테이블입니다. 물리적인 데이터를 저장하지 않고 실시간으로 데이터를 생성하므로 데이터의 일관성을 유지하면서 복잡한 SQL을 간소화할 수 있습니다.


    2. 뷰를 사용해야 하는 이유

    • 복잡한 SQL 간소화: 긴 SQL문을 뷰로 저장하면 코드 재사용성이 높아지고 유지 관리가 편리합니다.
    • 데이터 접근 제한: 보안 요구 사항에 따라 특정 컬럼이나 행만을 노출할 수 있습니다.
    • 데이터베이스 성능 최적화: 잘 설계된 뷰는 데이터 검색 및 분석에 필요한 시간과 리소스를 줄일 수 있습니다.

    3. MariaDB에서 뷰 생성 및 활용

    뷰 생성 기본 SQL

    CREATE VIEW 뷰명 AS
    SELECT 컬럼1, 컬럼2
    FROM 테이블명
    WHERE 조건;
    

    실습: Employee 데이터베이스를 활용한 뷰 생성

    MariaDB에서 직원 출퇴근 데이터를 관리하는 뷰를 생성해봅니다.

    1. 직원 데이터 테이블 생성

    CREATE TABLE Employees (
        ID TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
        First_Name VARCHAR(25),
        Last_Name VARCHAR(25),
        Position VARCHAR(25),
        PRIMARY KEY (ID)
    );
    

    2. 출퇴근 시간 테이블 생성

    CREATE TABLE Hours (
        ID TINYINT UNSIGNED NOT NULL,
        Clock_In DATETIME NOT NULL,
        Clock_Out DATETIME NOT NULL
    );
    

    3. 직원의 지각 및 조기 퇴근 데이터를 필터링하는 뷰 생성

    CREATE SQL SECURITY INVOKER VIEW Employee_Tardiness AS
    SELECT
        Employees.First_Name,
        Employees.Last_Name,
        Hours.Clock_In,
        Hours.Clock_Out,
        TIMESTAMPDIFF(MINUTE, Hours.Clock_Out, Hours.Clock_In) AS Difference
    FROM Employees
    INNER JOIN Hours ON Employees.ID = Hours.ID
    WHERE TIMESTAMPDIFF(MINUTE, Hours.Clock_Out, Hours.Clock_In) > -601;
    

    뷰 활용

    뷰를 통해 간단한 SELECT문으로 결과를 조회할 수 있습니다.

    SELECT * FROM Employee_Tardiness;
    

    4. 뷰의 추가적인 활용

    데이터 접근 제한

    뷰는 노출된 데이터를 제한하여 개인 정보를 보호할 수 있습니다. 예를 들어, 직원의 이름만 볼 수 있는 뷰를 생성할 수 있습니다.

    CREATE VIEW Public_Employee_Info AS
    SELECT First_Name, Last_Name
    FROM Employees;
    

    Row-Level Security

    특정 조건에 따라 데이터 접근을 제한할 수 있습니다. 예를 들어, 부서장이 자신의 부서 직원만 조회하도록 설정 가능합니다.

    데이터베이스 성능 최적화

    뷰를 사용하여 인덱스를 강제로 활용하거나 복잡한 조인을 미리 처리하여 성능을 개선할 수 있습니다.

    테이블 추상화

    기존 테이블 구조 변경 시, 뷰를 통해 기존 애플리케이션과의 호환성을 유지할 수 있습니다.


    MariaDB의 뷰는 복잡한 SQL 관리, 데이터 보안 강화, 성능 최적화 등 다양한 이점을 제공합니다. 이를 활용하면 데이터베이스 작업의 효율성을 크게 높일 수 있습니다.

    댓글