DBMS 8

[MySQL] 뷰(View) 란 무엇일까?

뷰(VIEW) 뷰(View)란 데이터베이스에 존재하는 일종의 가상 테이블 이다. - 실제 테이블처럼 행과 열을 가지고있지만, 실제로 데이터를 저장하고 있지는 않다. - SELECT 문을 사용해서 쿼리문으로 조회를 해야할 때 번거로움을 줄여주는 것이 바로 뷰 이다. * 다른테이블이나 다른 뷰에 있는 데이터를 '보여주는 역할'만을 수행한다.(마치 하나의 테이블 처럼 보여준다는 장점이 있다.) 뷰의 장점 특정 사용자에게 테이블 전체가 아닌 필요한 필드만 보여줄 수 있다. 복잡한 쿼리를 단순화해서 사용할 수 있다. 위와 같이 사용한 쿼리를 재사용 할 수 있다. 뷰의 단점 한 번 정의된 뷰는 변경이 불가능하다. 삽입,삭제,갱신 작업에 많은 제한사항을 가진다. 뷰는 자신만의 인덱스를 가질 수 없다. 예제 단일 테이..

DBMS/RDBMS - MySQL 2023.09.19

[MySQL] MySQL JOIN (내부결합,외부결합)

테이블 결합(JOIN) 2023.09.13 - [DBMS/RDBMS - MySQL] - [MySQL] MySql집합연산 - 합집합 테이블의 집합 연산(위 링크)에서는 세로(행) 방향으로 데이터가 늘어나거나 줄어드는 계산을 했다. 이제부터 설명하는 결합에서는 가로(열) 방향으로 데이터가 늘어나는 계산이 된다. 보통 데이터베이스는 하나의 테이블에 많은 데이터를 저장하지 않고 몇 개의 테이블로 나누어 저장한다. 이처럼 여러 개로 나뉜 데이터를 하나로 묶어 결과를 내는 방법이 테이블 결합이다. 여기서 결합을 이해하는 동시에 기본이 되는 개념이 집합론 '곱집합'이다. 곱집합과 교차결합 곱집합 곱집합은 합집합이나 교집합처럼 집합의 연산 방법 중 하나이다. 두 개의 집합을 곱하는 연산 방법으로 '곱집합' 또는 '카티..

DBMS/RDBMS - MySQL 2023.09.13

[MySQL] MySql집합연산 - 합집합

집합 연산의 유래 RDBMS의 창시자인 에드거 커드(Edgar F. Codd)는 관계형 모델을 고안한 인물이다. 관계형 모델을 채택한 데이터베이스를 관계형 데이터 베이스라 부른다. 관계형 모델에서의 관계형은 수학 집합론의 관계형 이론에서 유래했다. 집합론이라고 거창하게 말하지만 실질적으로는 데이터베이스의 데이터를 집합으로 간주해 다루기 쉽게 하자는 것에 지나지 않는다. 뜻을 잘 기억해 두면 이해하기 쉽다. 1. SQL과 집합 벤 다이어 그램에서는 하나의 원이 곧 하나의 집합이다. 원 안에는 몇 가지 요소가 포함된다. 한편 데이터베이스에서는 테이블의 행이 요소에 해당한다. 행은 여러 개의 열로 구성되는 경우도 있으므로, 수치 상으로는 복수의 값이 존재한다. 하지만 집합의 요소라는 측면에서 보면 하나의 행이..

DBMS/RDBMS - MySQL 2023.09.13

[MySQL] 물리삭제와 논리삭제

데이터베이스에서 데이터를 삭제하는 방법에는 크게 두가지가 있다. -물리삭제 -논리삭제 물리삭제란 -> SQL DELETE 명령을 사용하여 데이터를 직접 삭제하는 방식이다. (즉 데이터 자체를 직접 삭제하는 방식이다.) 논리삭제란 -> 삭제 플래그 라는 별도의 Column을 만들고 데이터를 직접 삭제하는 대신 SQL UPDATE 명령을 사용하여 삭제 플래그 안의 값을 변경하는 방식이다. (즉 데이터 자체는 삭제 되지 않고 보존된다.) 각자의 장단점을 알아보자. 물리삭제 논리삭제 장점 삭제하면 데이터베이스의 저장공간이 확보된다. 데이터를 삭제하지 않아 전 상태로 간단히 되돌릴 수 있다. 단점 데이터를 직접 삭제 하므로 복구가 까다롭다. 데이터가 직접 삭제되는 것이 아니므로 데이터베이스의 크기가 증가할 수록 ..

DBMS/RDBMS - MySQL 2023.09.11

[MySQL] 데이터베이스 용어 모음집

릴레이션 (relation) -> 같은 성격의 데이터들의 집합을 의미한다. 흔히 테이블이라고 말하는 용어와 같은 의미로 이론적인 용어이다. 릴레이션은 튜플과 에트리뷰트로 데이터를 정렬하여 관리한다. 튜플 (tuple) (행) -> 릴레이션의 각 행을 의미. 흔히 일반적인 용어로 레코드(record)와 로우(row)와 같은 의미로 사용된다. 에트리뷰트(attribute) (속성) (열) -> 릴레이션에서 이름을 가진 하나의 열을 말한다. 흔히 일반적인 용어로 칼럼(column)과 같은 의미로 사용된다. 디그리(degree) -> 에트리뷰트의 수를 말한다. 카디널러티(cardinality) -> 튜플들의 수를 말한다. 릴레이션의 특징 - 한 릴레이션에 정의된 튜플들은 모두 다르다. - 한 릴레이션에 정의된 ..

DBMS/RDBMS - MySQL 2023.09.08

[MySQL] DBMS의 명령어 종류 (DML,DDL,DCL,TCL)

명령어 종류 명령어 설명 데이터 조작어 DML (Data Manipulation Language) SELECT 데이터 베이스에 들어 있는 데이터 조회 및 검색 하기 위한 명령어 (RETRIEVE 라고도 한다.) INSERT UPDATE DELETE 데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류 (데이터 삽입,수정,삭제)의 명령어들 데이터 정의어 DDL (Data Definition Language) CREATE ALTER DROP RENAME TRUNCATE 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 (생성,변경,삭제,이름변경) 데이터 구조와 관련된 명령어들 데이터 제어어 DCL (Data Control Language) GRANT REVOKE 데이터베이스에 접근하고 객체..

DBMS/RDBMS - MySQL 2023.09.08

[MySQL] ERROR 1819(HY000) 해결법

MySQL 에서 유저를 새로 등록할 때 에러가 발생하는 경우가 있다. 예시로 test_user 라는 이름을 가진 유저를 비밀번호 1234 로 설정해서 만들어 보자. mysql>create user test_user@localhost identified by '1234'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 비밀번호 설정할 때 1234 라는 비밀번호가 비밀번호 정책에 의해서 에러가 나는것 이다. 비밀 번호 정책을 살펴 보자. LOW인 경우 길이만 지켜주면 된다. 최소 8자 이상의 비밀번호가 되어야 한다. MEDIUM인 경우 길이와 숫자, 대문자, 소문자, 특수문자가 모두 포함된 비밀번호가 되어야..

DBMS/RDBMS - MySQL 2023.09.07

[MySQL] 데이터베이스 생성 및 사용자 생성

MySQL은 대소문자를 구분하지 않으므로 편한 방법으로 사용하면 된다.(보통은 대문자로 입력 한다고 알고있다..) 1. 터미널에서 MySQL 접속 mysql -u root -p 설정해둔 비밀번호 입력 2. 새로운 데이터 베이스 생성 CREATE DATABASE test; -> CREATE DATABASE 데이터베이스명; 3. 사용자 생성 및 권한 부여 root 계정 생성은 처음 한번만 한다. CREATE USER 'root'@'%' IDENTIFIED BY '12345678' ; -> 새로운 root 유저를 생성 / 비밀번호를 12345678 로 설정; //error 발생 시 이 포스트 보고 오기 https://sonodev.tistory.com/6 GRANT ALL PRIVILEGES ON *.* TO..

DBMS/RDBMS - MySQL 2023.09.07