数据库管理系统DBMS:历史、意义与功能解析

需积分: 9 1 下载量 35 浏览量 更新于2024-08-12 收藏 5.67MB PPTX 举报
"DBMS介绍.pptx 是一个关于数据库管理系统(DBMS)的演示文稿,涵盖了数据管理的发展历程,从早期的穿孔制表机到现代DBMS的重要性和功能。" 在信息技术领域,数据库管理系统(DBMS)是至关重要的组成部分,它的引入极大地改进了数据的存储、管理和访问方式。DBMS的出现标志着数据管理从简单的文件系统向更高效、安全的集中式数据存储转变。 数据管理的诞生可以追溯到18世纪,当时使用穿孔卡片来存储和处理数据。然而,直到19世纪末,霍勒利斯博士发明的分拣机、制表机和记录机才使得数据处理规模化,这一技术持续影响了近一个世纪。随着计算机技术的进步,批处理方式逐渐被引入,但这种一次性输入和输出的方式限制了数据的持久化和复用。 文件系统的出现是一个重要的里程碑,它在磁盘上组织文件,提供了数据的长期保存和多程序间的共享。文件系统不仅负责存储空间的分配,还支持文件的保护和检索,使得数据结构和逻辑不再完全依赖于程序员,增强了程序的独立性。出现了各种类型的文件,如顺序文件和索引文件,以适应不同的访问需求。 然而,随着计算机应用的扩展,尤其是数据共享需求的增长,传统文件系统无法满足复杂的数据管理任务。因此,DBMS应运而生。DBMS是一种专门用于创建、管理、操纵数据库的软件,它提供了一种抽象层,使得用户可以通过遵循特定的语法规则来操作数据,而不必关心底层的物理实现。DBMS的主要功能包括存储管理、安全性管理、完整性管理和数据的高效访问,它使得数据能够在多个用户间安全、有效地共享。 DBMS的引入带来了诸多优势,例如,它通过数据的统一管理提高了数据一致性,减少了冗余;通过安全性管理确保了数据的隐私和保护;通过完整性规则防止了数据的不一致性和错误;并且通过优化查询处理,提升了数据访问速度。DBMS的这些特性使其成为现代企业信息系统的核心组件,广泛应用于各种业务场景,如财务、医疗、零售等领域。 DBMS的出现是数据管理历史上的一个重要转折点,它简化了数据操作,增强了数据的可用性和可靠性,推动了信息技术的发展,并在今天的数字化世界中继续发挥着关键作用。了解和掌握DBMS的基本原理和使用,对于理解和应用现代信息系统至关重要。

grant execute on dbms_crypto to system; declare input_string VARCHAR2 (200) := 'Secret Message'; output_string VARCHAR2(2000); encrypted_raw RAW(2000); decrypted_raw RAW(2000); num_key_bytes NUMBER := 256/8; key_bytes_raw RAW(32); encryption_type PLS_INTEGER := DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; begin DBMS_OUTPUT.PUT_LINE(input_string); key_bytes_raw := DBMS_CRYPTO.RANDOMBYTES(num_key_bytes); encrypted_raw := DBMS_CRYPTO.ENCRYPT ( src => UTL_I18N.STRING_TO_RAW(input_string, 'AL32UTF8'), typ => encryption_type, key => key_bytes_raw ); decrypted_raw := DBMS_CRYPTO.DECRYPT ( src => encrypted_raw, typ => encryption_type, key => key_bytes_raw ); output_string := UTL_I18N.RAW_TO_CHAR(decrypted_raw, 'AL32UTF8'); DBMS_OUTPUT.PUT_LINE(output_string); end; declare l_src_data varchar2(20); l_type pls_integer :=DBMS_CRYPTO.ENCRYPT_AES128 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; l_key varchar2(20) :='0123456789123456'; l_encval raw(2000); CURSOR secret_cursor IS select phonenumber from customer; begin OPEN secret_cursor; LOOP FETCH secret_cursor INTO l_src_data; l_encval :=dbms_crypto.encrypt( src=>utl_i18n.string_to_raw(l_src_data,'AL32UTF8'), typ=>l_type, key=>utl_i18n.string_to_raw(l_key,'AL32UTF8')); DBMS_OUTPUT.PUT_LINE (l_encval); EXIT WHEN secret_cursor%NOTFOUND; END LOOP; CLOSE secret_cursor; end; declare ;_src_data row(100) :=hextoraw("190248129038903853275ijdkvjkad'); l_type pls_integer :=dbms_crypto.encrypt_aes128+ + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; l_key varchar2(20) :='0123456789123456'; l_decval raw(200); begin l_decval :=dbms_crypto.decrypt( src=>l_src_data, typ=>l_type, key=>utl_i18n.string_to_raw(l_key,'AL32UTF8')); end; SELECT Price FROM PRODUCT WHERE ProductID = 5;修正这一段代码

2023-05-26 上传

grant execute on dbms_crypto to system; -- 第一个代码块 declare input_string VARCHAR2 (200) := 'Secret Message'; output_string VARCHAR2(2000); encrypted_raw RAW(2000); decrypted_raw RAW(2000); num_key_bytes NUMBER := 256/8; key_bytes_raw RAW(32); encryption_type PLS_INTEGER := DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; begin DBMS_OUTPUT.PUT_LINE(input_string); key_bytes_raw := DBMS_CRYPTO.RANDOMBYTES(num_key_bytes); encrypted_raw := DBMS_CRYPTO.ENCRYPT(src => UTL_I18N.STRING_TO_RAW(input_string, 'AL32UTF8'), typ => encryption_type, key => key_bytes_raw); decrypted_raw := DBMS_CRYPTO.DECRYPT(src => encrypted_raw, typ => encryption_type, key => key_bytes_raw); output_string := UTL_I18N.RAW_TO_CHAR(decrypted_raw, 'AL32UTF8'); DBMS_OUTPUT.PUT_LINE(output_string); end; -- 第二个代码块 declare l_src_data varchar2(20); l_type pls_integer := DBMS_CRYPTO.ENCRYPT_AES128 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; l_key varchar2(20) := '0123456789123456'; l_encval raw(2000); cursor secret_cursor is select phonenumber from customer; begin open secret_cursor; loop fetch secret_cursor into l_src_data; exit when secret_cursor%notfound; l_encval := dbms_crypto.encrypt(src => utl_i18n.string_to_raw(l_src_data,'AL32UTF8'), typ => l_type, key => utl_i18n.string_to_raw(l_key,'AL32UTF8')); dbms_output.put_line(l_encval); end loop; close secret_cursor; end; -- 第三个代码块 declare l_src_data raw(100) := hextoraw('190248129038903853275ijdkvjkad'); l_type pls_integer := DBMS_CRYPTO.ENCRYPT_AES128 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; l_key varchar2(20) := '0123456789123456'; l_decval raw(200); begin l_decval := dbms_crypto.decrypt(src => l_src_data, typ => l_type, key => utl_i18n.string_to_raw(l_key,'AL32UTF8')); end; -- SQL 查询语句 SELECT Price FROM PRODUCT WHERE ProductID = 5;declare * ERROR at line 18: ORA-06550: line 18, column 1: PLS-00103: Encountered the symbol "DECLARE"报错

2023-05-26 上传