Language/SQL
테이블 - 데이터 자료형, DDL/툴을 통한 생성 및 삭제
| 테이블 정의 - 정형화된 데이터는 RDBMS의 기본 단위인 Table 형태로 저장된다. - Table은 관계(Relation)라고도 불리며, 특정 종류의 데이터를 구조적으로 묶은 목록을 말한다. (1) 칼럼 = 필드 = 속성 : 변수 EX. email, name, addr... (2) 로우 = 레코드 = 튜플 : 실제 값 EX. kim1234@gmail.com, kim1235@gmail.com... | 데이터 자료형 - 종류 : 숫자 / 문자 및 문자열 / Boolean / 날짜 및 시간 / 큰 객체 - 각 DBMS마다 자료형을 표현하는 방식에 차이가 있다. Oracle MySQL/MariaDB SQL Server PostgreSQL 숫자 NUMBER FLOAT TINTINT SMALLLINT MED..
데이터베이스 - 데이터베이스 생성 및 권한 부여(DDL)
| 개요 📌 인스턴스란? = database(데이터의 집합) = table space = 테이블이 위치하는 공간(디렉토리) 📌 계정은 왜 여러개 생성할까? 접속자마다 DB 관리권한이 다를 수 있다. 📌 원격으로 접속하는 컴퓨터에 대한 접속권한도 고려해야 한다. 📌 SQL명령어 - DDL, DML, DCL | SQL (Structured Query Language) - 의미 : DBMS와 소통하기 위한 구조화된 질의어 - 구분 데이터 정의어(DDL, Data Definition Langugae) CREATE, DROP, ALTER, TRUNCATE 데이터 조작어(DML, Data Manipulation Language) INSERT, UPDATE, DELETE, SELETE ( CRUD ) 데이터 제어어(..
데이터베이스 환경 구축(설치)
| 데이터베이스의 순위 - 출처 : https://db-engines.com/en/ranking - 2022년을 기준으로 데이터베이스의 순위는 아래와 같다 * 아래 [바로가기]를 선택 시, 해당 DBMS 사용 메뉴얼로 이동 - 예전에 오라클을 설치하는 것을 포스팅한 적이 있었는데 이번에는 MariaDB를 설치하는 법을 작성해보려한다. 1 Oracle RDMBS 오라클사 바로가기 2 MySQL RDMBS 오라클사 바로가기 3 Microsoft SQL Server RDMBS Microsoft 바로가기 4 PostgreSQL RDMBS PostgreSQL단체 바로가기 5 MongoDB NoSQL계열 MongoDB, Inc 바로가기 | MariaDB 설치하기 1. Windows 환경 (1) 다운로드 사이트로 이..
파일시스템과 DBMS, RDMBS
| 파일 시스템과 데이터베이스 관리시스템 - 영구적인 데이터 저장을 위해서는 보조기억장치에 파일 형식으로 저장을 하는 것이 필요하다. - 다만, 이런 파일 시스템은 응용 프로그램의 구조와 환경에 의존적이고(데이터 종속성), 그렇기에 같은 데이터여도 구조가 다르다면 여러 개로 중복되어 저장되는(데이터 중복성) 단점이 있다. - 데이터베이스는 이러한 파일시스템의 데이터 종속성과 데이터 중복성을 제거하기 위해 만들어졌다. 1. 파일 시스템 vs 데이터베이스 관리 시스템 파일 시스템 데이터베이스 관리 시스템 정의 컴퓨터에서 자료를 쉽게 찾을 수 있도록 파일 형식으로 보관 및 관리하는 체계 데이터베이스를 체계적으로 관리하기 위한 시스템 종류 FAT/NTFS(windows), ext(linux), APFS(macO..
[DATABASE] PL/SQL 프로시져
■ 프로시저란? - 어떤 업무를 수행하기 위한 절차로 자주 쓰는 명령을 절차적으로 지정해둔 형태 ■ 함수와 프로시져의 차이점 https://mjn5027.tistory.com/47 [ Oracle ] 프로시저와 함수의 차이 오라클을 사용하다보면 자주 접하게 되는 프로시저와 함수. 이 둘의 정의와 차이점에 대해 알아보자. 프로시저(Procedure)란? 넓은 의미로는 어떤 업무를 수행하기 위한 절차를 뜻한다. 예를 mjn5027.tistory.com ■ 프로시져 코딩 예시 -- 수정 create or replace procedure book_update(v_name IN varchar2, v_price IN number, v_idx IN number) is begin UPDATE book SET n..
[DATABASE] MVC 모델 구현 _ 성적 관리 프로그램
■ MVC 모델이란? https://m.blog.naver.com/jhc9639/220967034588 구분 내용 모델 애플리케이션의 데이터를 담고 CRUD하는 객체 (DAO 객체) 뷰 데이타를 기반으로 사용자들이 볼 수 있는 화면 컨트롤러 데이터와 사용자인터페이스 요소들을 잇는 다리역할 [개발자 면접준비]#1. MVC패턴이란 오늘은 개발자면접에 많이 나오기도 하는 MVC패턴에 대해서 알아보고자 합니다. 과연 MVC패턴이 무엇... blog.naver.com
[DATABASE] 자바를 통한 DB 모듈화
■ DB 모듈화 전체 구성 * 화살표 방향은 무시하고 전체적인 흐름만 보세요. ■ Connection(서버연결) 관리 객체 드라이버를 로딩하고, DB 서버와 연결하는 객체 - DAO가 Connection 관리 객체에게 DB 연결 곧, Connection을 요청하면, Connection 인스턴스를 DAO에게 전달한다. [코드 예시] package service; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBservice { static { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNo..
[DATABASE] PreparedStatement를 사용하여 시큐어코딩하기
■ SQL Injection 공격자가 악의적인 의도를 갖는 SQL 구문을 삽입하여, 데이터베이스를 비정상적으로 조작하는 코드 인젝션 공격 기법 ▶ 해커의 해킹 방식 //아래의 SQL문에 항상 참인 값을 넣으면 모든 정보가 노출이된다. String sql = "SELECT * FROM test_member WHERE id = 'test' AND pwd = '1234'" + "or 1 = 1"; - 위와 같은 방식으로 SQL구문을 삽입하여 DB를 조작하는 공격을 SQL 인젝션이라 한다. - 해결 방법 : PreparedStatement를 사용한다. ■ Statement와 PreparedStatment의 차이점 Statement PreparedStatement 차이점 캐시 미사용 캐시 사용 절차 쿼리 문장 분..
[DATABASE] JAVA프로그램과 DB 연결하기
■ JDBC란? - 자바 APP과 DB를 연결하여 프로그래밍을 하기 위한 API (또는 이클립스에선 라이브러리라고도 부른다) - 물리적으로는 jdbcXX.jar 파일을 의미한다. - 우리는 jdbc.jar안의 드라이버를 통해 모든 종류의 데이터베이스를 사용할 수 있다. (EX. 오라클, mySql 등) ■ 데이터베이스를 연결하기 전에 점검할 사항 1. 현재 내가 만들고자 하는 앱은 무엇인가? - 데스크탑 앱 : 로컬에서 설치, 실행되는 앱 프로그램 - 웹 앱 : 브라우저를 통해 실행되는 앱 프로그램 2. 현재 내가 접속하고자 하는 DB 서버의 위치는 어디인가? - 로컬 서버인가? - 외부 클라우드 서버인가? * DB 서버와의 연결 시, 서버 url과 사용자명, 비밀번호가 필요하기에 미리 알아두는 것이 좋..
[DATABASE] JOIN
■ 데이터의 무결성 - 데이터가 실제 현실 세계의 자료와 차이가 없는 수준의 정확성을 보이는 것 - 여러 사용자가 동일 내용의 테이블을 중복하여 사용할 경우, 데이터에 이상현상 발생 가능성 높음 -> 제약조건으로 데이터 자체의 무결성 유지 -> 정규화를 사용하여 테이블을 분해 -> 동기화 ■ 조인 - 정규화한 테이블을 역정규화하는 키워드 - 원리 : 각 테이블의 Key를 사용하여 연결한다. - 장점 : 중복된 레코드 수를 줄인다. 이상현상을 방지하고 성능이 높아진다. 1) 오라클 조인 - WHERE를 사용한 방법 2) 공통 SQL 조인 - ANSI 방식 ■ 조인의 종류 종류 INNER JOIN 조인 조건(두 테이블의 키)에 일치하는 데이터만 가져온다. OUTER JOIN 조인 조건에 일치하는 데이터 및 ..