관계형 데이터베이스(Relational Database RDB)란 테이블에 저장된 데이터들이 행(row)과 열(컬럼:Columm)의 형태로 구성되어 있으며, 서로 다른 데이터 구조가 사전에 정의된 관계를 통해 연결되어 있는 데이터 모음입니다. 엑셀의 스프레드 시트와 비슷한 구조를 가지고 있는 것이 주요 특징입니다.
✅ 관계형 데이터베이스 정의
관계형 데이터베이스(Relational Database:RDB)는 데이터를 테이블 형태로 관리하며, 테이블(Table)에는 행(row)과 열(column)의 형태로 데이터가 저장됩니다. RDB는 이러한 테이블들 간의 관계를 이용하여 데이터를 관리하고 연결합니다.
RDB는 데이터의 분류, 정렬, 탐색이 빠르고 용이하며 오랜 기간 사용한 만큼 높은 신뢰성과 데이터의 무결성을 보장해 줍니다.
RDB 기본 용어
열(column)
관계형 DB의 각 열은 고유의 이름을 가지고 있으며, 이 이름은 해당 열이 저장하는 데이터의 의미를 나타냅니다. 예를 들어, “이름”, “나이”, “주소” 등의 열 이름이 될 수 있습니다.
행(row, 레코드)
실직적인 진짜 데이터입니다. 각 행은 해당 테이블에 있는 하나의 레코드를 나타냅니다. 예를 들어, 특정 사람에 대한 정보(이름, 나이, 주소 등)가 테이블의 한 행으로 표현될 수 있습니다.
값(value)
값(value)은 열(column)에 저장되는 실제 데이터나 정보를 의미합니다. 각 행(row)의 열은 해당하는 값들을 가지며, 각 값은 해당하는 열의 데이터 형식에 따라 저장됩니다.
키(key)
키(key)는 관계형 데이터베이스에서 데이터를 식별하거나 정렬하는 데 사용되는 중요한 개념입니다. 데이터베이스 내에서 특정 레코드(행)를 고유하게 식별하거나, 레코드 간의 관계를 구성하거나, 데이터에 빠르게 액세스하기 위해 사용됩니다.
스키마(schema)
데이터베이스의 구조와 제약 조건에 대한 전반적인 명세를 기술한 것으로, 데이터베이스 기본 설계로 이해할 수 있습니다. 테이블에 어떤 종류의 값이 들어 가는지에 대한 정의로써 각 테이블의 이름, 각 열(속성)의 이름과 데이터 유형, 크기, 제약 조건 등을 명시합니다.
✅ 관계(Relationships)
관계(Relationships)는 다른 테이블의 데이터와의 상호 작용을 가능하게 합니다.
크게 3가지로 분류 할 수 있습니다.
One-to-One (일대일 관계)
한 테이블의 각 레코드가 다른 테이블의 한 레코드와만 관련된 경우입니다. 예를 들어, 각 사원은 하나의 사무실을 가진다는 것과 각 사무실은 한 명의 관리자만을 가진다는 것이 이에 해당할 수 있습니다.
One-to-Many (일대다 관계)
한 테이블의 레코드가 다른 테이블의 여러 레코드와 관련된 경우입니다. 가장 흔한 관계 중 하나로, 한 회사에 여러 사원이 속해있는 것이 이에 해당할 수 있습니다.
Many-to-Many (다대다 관계)
두 테이블의 레코드가 서로 여러 개의 연결을 가지는 경우입니다. 이러한 관계는 별도의 연결 테이블을 통해 해결됩니다. 예를 들어, 학생과 과목 간의 관계로 볼 때, 한 학생이 여러 과목을 수강하고 여러 학생이 같은 과목을 수강하는 경우가 이에 해당합니다.
DBMS인 MariaDB를 설치하면 MariaDB cnf 파일 설정을 하게 되는데 MySQL MariaDB 환경설정 파일 mycnf는 /etc/my.cnf 경로에 있으며, /etc/my.cnf.d/ 디렉토리를 포함하는 설정이 기본으로 잡혀 있습니다. 11.3 버전 설치 시 화면입니다. 목차✅ 관계형 데이터베이스 정의✅ 관계(Relationships)✅ 관계형 DBMS 종류✅ MariaDB cnf 파일 구성: /etc/my.cnf.d 디렉토리 /etc/my.cnf.d 디렉토리 내의 구성은 다음과 같습니다. ✅ MariaDB Client와 Server의…
Oracle 19c를 윈도우에 설치 후 [ORA-12514: TNS:리스너가 현재 접속 기술자에 요청된 서비스를 알지 못함]이란 오류가 발생했습니다. 목차✅ 관계형 데이터베이스 정의✅ 관계(Relationships)✅ 관계형 DBMS 종류ORA-12514 오류 > 파일 수정 여러가지 오류 확인 중 [lisener.ora] 파일과 [tnsnames.ora] 2개의 파일 수정을 먼저 진행했습니다. 2개 파일은 각각 셋업 시 설정한 설치 경로가 다를 수 있으며, 저의 경우…
리눅스 서버에 MySQL 또는 MariaDB, PostgreSQL 설치 후 좀 더 편리한 DB 관리를 위해 phpMyAdmin 설치 후 사용하는 경우가 많습니다. 기본적인 phpMyAdmin 설치와 취약점에 대해서 알아 보도록 하겠습니다. 목차✅ 관계형 데이터베이스 정의✅ 관계(Relationships)✅ 관계형 DBMS 종류phpMyAdmin 설치 방법 RedHat 기반의 OS 버전인 RockyLinux 및 AlmaLinux에서의 설치가 가능하며, AlmaLinux 9.3에서 설치를 진행했습니다. PHP 7.1…
목차✅ 관계형 데이터베이스 정의✅ 관계(Relationships)✅ 관계형 DBMS 종류✅ SQL이란? SQL(Structured Query Language)은 구조화된 질의 언어의 뜻을 가지고 있습니다. 구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어입니다. 관계형 데이터베이스는 정보를 표 형식으로 저장하며, 행과 열은 다양한 데이터 속성과 데이터 값 간의 다양한 관계를 나타냅니다. ✅ SQL 시스템의 구성 요소 SQL 시스템은…
MariaDB에서 Slow Query Log 설정을 할 경우 Mariadb 10.2 버전부터 etc/my.cnf.d/ 폴더안에 mysql-clients.cnf 및 server.cnf 파일로 나뉘게 되었습니다. mysql 이라도 폴더를 확인한 후에 설정 내역에 따라 확인하면 되겠습니다. 먼저 etc/my.cnf.d/server.cnf 파일에 적용하는 방법에 대해 알아 보겠습니다. ※ Slow Query Slow Query는 수행하는 데 오랜 시간이 걸리는 쿼리입니다. 응답 시간이 길어질 경우 서비스의 품질이…
MySQL 또는 MariaDB를 설치한 서버에서 테이블이 깨지는 경우가 있습니다. MariaDB 테이블 손상의 원인은 크게 다음과 같습니다. 목차✅ 관계형 데이터베이스 정의✅ 관계(Relationships)✅ 관계형 DBMS 종류✅ MariaDB 테이블 손상 확인 및 복구 방법 웹사이트를 운영하면서 발생하게 되는 테이블이나 DB 자체가 깨지는 경우 MySQL / MariaDB 테이블 복구가 필요한데 먼저 손상된 테이블을 확인하는 방법입니다. 1. 쿼리문…